赞
踩
CodeBlocks 出现undefined reference to `GetOpenFileNameA@'问题时解决方案:需要为编译器添加lib库:(添加libcomdlg32.a文件)
代码:
- #if defined(UNICODE) && !defined(_UNICODE)
- #define _UNICODE
- #elif defined(_UNICODE) && !defined(UNICODE)
- #define UNICODE
- #endif
-
- #include <tchar.h>
- #include <windows.h>
- #include <string.h>
- #include <stdlib.h>
- #include <stdio.h>
-
- #define FILE_MENU_CREATE 1
- #define FILE_MENU_UPDATE 2
- #define FILE_MENU_READ 3
- #define FILE_MENU_DELETE 4
- #define FILE_MENU_IMPORT 5
- #define FILE_MENU_EXPORT 6
- #define FILE_MENU_EXIT 7
- #define CREATE 1
- #define UPDATE 2
- #define READ 3
- #define DEL 4
-
-
- /* Declare Windows procedure */
- LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
-
- void InitWindow(HWND);
- void InitDialog(HWND);
- void AddMenus(HWND);
- void registerDialogClass(HINSTANCE);
- void displayDialogCreate(HWND);
- void displayDialogCreateAddControls(HWND);
- void displayDialogRead(HWND);
- void displayDialogReadAddControls(HWND);
- void displayDialogUpdate(HWND);
- void displayDialogUpdateAddControls(HWND);
- void displayDialogDel(HWND);
- void displayDialogDelAddControls(HWND);
-
-
- struct Person
- {
- char num[30];
- char name[30];
- char gender[30];
- char age[30];
- char major[30];
- char phone[30];
- char address[50];
- };
- const int item=100;
- Person PersonBook[item];
- int numPerson;
-
- HMENU hMenu;
- HWND hNumber,hName,hAge,hGender,hClass,hPhone,hAddress,hMainWindow,hOut;
- HWND hwnd;
- /* Make the class name into a global variable */
- TCHAR szClassName[ ] = _T("CodeBlocksWindowsApp");
-
-
- int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevInstance,LPSTR lpszArgument,int nCmdShow)
- {
- /* This is the handle for our window */
- MSG messages; /* Here messages to the application are saved */
- WNDCLASSEX wincl; /* Data structure for the windowclass */
-
- /* The Window structure */
- wincl.hInstance = hThisInstance;
- wincl.lpszClassName = szClassName;
- wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
- wincl.style = CS_DBLCLKS; /* Catch double-clicks */
- wincl.cbSize = sizeof (WNDCLASSEX);
-
- /* Use default icon and mouse-pointer */
- wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
- wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
- wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
- wincl.lpszMenuName = NULL; /* No menu */
- wincl.cbClsExtra = 0; /* No extra bytes after the window class */
- wincl.cbWndExtra = 0; /* structure or the window instance */
- /* Use Windows's default colour as the background of the window */
- wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
-
- /* Register the window class, and if it fails quit the program */
- if (!RegisterClassEx (&wincl))
- {
- MessageBox ( NULL, TEXT ("This program requires Windows NT!"),szClassName, MB_ICONERROR) ;
- return 0;
- }
-
- registerDialogClass(hThisInstance);
-
- /* The class is registered, let's create the program*/
- hwnd = CreateWindowEx (
- 0, /* Extended possibilites for variation */
- szClassName, /* Classname */
- _T("通讯录"), /* Title Text */
- WS_OVERLAPPEDWINDOW, /* default window */
- CW_USEDEFAULT, /* Windows decides the position */
- CW_USEDEFAULT, /* where the window ends up on the screen */
- 544, /* The programs width */
- 375, /* and height in pixels */
- HWND_DESKTOP, /* The window is a child-window to desktop */
- NULL, /* No menu */
- hThisInstance, /* Program Instance handler */
- NULL /* No Window Creation data */
- );
-
- /* Make the window visible on the screen */
- ShowWindow (hwnd, nCmdShow);
-
- /* Run the message loop. It will run until GetMessage() returns 0 */
- while (GetMessage (&messages, NULL, 0, 0))
- {
- /* Translate virtual-key messages into character messages */
- TranslateMessage(&messages);
- /* Send message to WindowProcedure */
- DispatchMessage(&messages);
- }
-
- /* The program return-value is 0 - The value that PostQuitMessage() gave */
- return messages.wParam;
- }
-
- void open_file(HWND);
- void save_file(HWND);
- void total()
- {
- numPerson=0;
- for(int i=0;i<100;i++)
- {
- if(strcmp(PersonBook[i].name,"")==0)
- break;
- numPerson=i+1;
- }
- }
- /* This function is called by the Windows function DispatchMessage() */
-
- LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
- {
- int val;
- switch (message) /* handle the messages */
- {
- case WM_COMMAND:
- switch(wParam)
- {
- case FILE_MENU_EXIT:
- val=MessageBoxW(hwnd,L"Are you sure?",L"Wait!",MB_YESNO|MB_ICONEXCLAMATION);
- if(val==IDYES)
- {
- DestroyWindow(hwnd);
- }
- else if(val==IDNO)
- {
-
- }
- break;
- case FILE_MENU_CREATE:
- displayDialogCreate(hwnd);
- //MessageBeep(MB_ICONINFORMATION);
- break;
- case FILE_MENU_READ:
- displayDialogRead(hwnd);
- break;
- case FILE_MENU_UPDATE:
- displayDialogUpdate(hwnd);
- break;
- case FILE_MENU_DELETE:
- displayDialogDel(hwnd);
- break;
- case FILE_MENU_IMPORT:
- open_file(hwnd);
- total();
- InitWindow(hwnd);
- break;
- case FILE_MENU_EXPORT:
- save_file(hwnd);
- break;
- }
- break;
- case WM_CREATE:
- InitDialog(hwnd);
- open_file(hwnd);
- total();
- InitWindow(hwnd);
- AddMenus(hwnd);
- break;
- case WM_DESTROY:
- PostQuitMessage (0); /* send a WM_QUIT to the message queue */
- break;
- default: /* for messages that we don't deal with */
- return DefWindowProc (hwnd, message, wParam, lParam);
- }
-
- return 0;
- }
- /* Initialization of Window Menu*/
- void AddMenus(HWND hwnd)
- {
- hMenu=CreateMenu();
- HMENU hFileMenu=CreateMenu();
-
- AppendMenu(hFileMenu,MF_STRING,FILE_MENU_CREATE,"添加");
- AppendMenu(hFileMenu,MF_STRING,FILE_MENU_UPDATE,"修改");
- AppendMenu(hFileMenu,MF_STRING,FILE_MENU_READ,"查询");
- AppendMenu(hFileMenu,MF_STRING,FILE_MENU_DELETE,"删除");
- AppendMenu(hFileMenu,MF_SEPARATOR,(UINT_PTR)NULL,NULL);
- AppendMenu(hFileMenu,MF_STRING,FILE_MENU_IMPORT,"导入");
- AppendMenu(hFileMenu,MF_STRING,FILE_MENU_EXPORT,"导出");
- AppendMenu(hFileMenu,MF_SEPARATOR,(UINT_PTR)NULL,NULL);
- AppendMenu(hFileMenu,MF_STRING,FILE_MENU_EXIT,"退出");
- AppendMenu(hMenu,MF_POPUP,(UINT_PTR)hFileMenu,"菜单");
- AppendMenu(hMenu,MF_POPUP,(UINT_PTR)NULL,"设置");
- AppendMenu(hMenu,MF_POPUP,(UINT_PTR)NULL,"帮助");
-
- SetMenu(hwnd,hMenu);
- }
-
- /* Initialization of Window Message*/
-
- void InitWindow(HWND hwnd)
- {
- int x,y,padding;
- int cxScreen, cyScreen ;
- cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
- cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
- x=10;
- y=50;
- padding=2;
- int cell_width=(cxScreen-50)/12;
- int cell_height=20;
-
- CreateWindow("Static","通讯录 v2.0.1",WS_VISIBLE|WS_CHILD|ES_CENTER,0,10,cxScreen,30,hwnd,NULL,NULL,NULL);
-
- CreateWindow("Static","序号",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*0,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","学号",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*1,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","姓名",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*2,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","性别",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*3,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","年龄",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*4,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","班级",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*5,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","电话",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*6,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","地址",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*7,y,cell_width*4,cell_height,hwnd,NULL,NULL,NULL);
- //CreateWindow("Static","操作",WS_VISIBLE|WS_CHILD|ES_CENTER,x+(cell_width+padding)*11,y,cell_width,cell_height,hwnd,NULL,NULL,NULL);
-
- int num=(cyScreen*0.716666)/22;
- char str[10],str1[10];
- for(int i=1;i<=num;i++)
- {
- itoa(i,str,10);
- CreateWindow("Static",str,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*0,y+(cell_height+padding)*i,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",(LPSTR)PersonBook[i-1].num,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*1,y+(cell_height+padding)*i,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",(LPSTR)PersonBook[i-1].name,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*2,y+(cell_height+padding)*i,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",(LPSTR)PersonBook[i-1].gender,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*3,y+(cell_height+padding)*i,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",(LPSTR)PersonBook[i-1].age,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*4,y+(cell_height+padding)*i,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",(LPSTR)PersonBook[i-1].major,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*5,y+(cell_height+padding)*i,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",(LPSTR)PersonBook[i-1].phone,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*6,y+(cell_height+padding)*i,cell_width,cell_height,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",(LPSTR)PersonBook[i-1].address,WS_VISIBLE|WS_CHILD|ES_LEFT, x+(cell_width+padding)*7,y+(cell_height+padding)*i,cell_width*4,cell_height,hwnd,NULL,NULL,NULL);
- //CreateWindow("Button","修改",WS_VISIBLE|WS_CHILD|ES_CENTER, x+(cell_width+padding)*11,y+(cell_height+padding)*i,cell_width/2,cell_height,hwnd,NULL,NULL,NULL);
- //CreateWindow("Button","删除",WS_VISIBLE|WS_CHILD|ES_CENTER, x+(cell_width+padding)*11+cell_width/2,y+(cell_height+padding)*i,cell_width/2,cell_height,hwnd,NULL,NULL,NULL);
- }
- itoa(num,str,10);
- itoa(numPerson,str1,10);
- char s1[30];
- strcpy(s1,"");
- strcat(s1,"每页 ");
- strcat(s1,str);
- strcat(s1," 条数据");
- char s2[30];
- strcpy(s2,"");
- strcat(s2,"总共 ");
- strcat(s2,str1);
- strcat(s2," 条数据");
-
- CreateWindow("Static","",WS_VISIBLE|WS_CHILD|ES_LEFT,0,y+(cell_height+padding)*(num+1)+8,cxScreen,30,hwnd,NULL,NULL,NULL);
- //CreateWindow("Static",s1,WS_VISIBLE|WS_CHILD|ES_LEFT,10,y+(cell_height+padding)*(num+1)+8,cxScreen/12,30,hwnd,NULL,NULL,NULL);
- CreateWindow("Static",s2,WS_VISIBLE|WS_CHILD|ES_LEFT,20+cxScreen/12,y+(cell_height+padding)*(num+1)+8,cxScreen/12,30,hwnd,NULL,NULL,NULL);
- //CreateWindow("Button","上一页",WS_VISIBLE|WS_CHILD|ES_LEFT,cxScreen/2+(cxScreen/12)*2,y+(cell_height+padding)*(num+1)+8,cxScreen/12,30,hwnd,NULL,NULL,NULL);
- //CreateWindow("Button","第",WS_VISIBLE|WS_CHILD|ES_CENTER,cxScreen/2+(cxScreen/12)*3,y+(cell_height+padding)*(num+1)+8,cxScreen/36,30,hwnd,NULL,NULL,NULL);
- //CreateWindow("Edit","1",WS_VISIBLE|WS_CHILD|ES_CENTER,cxScreen/2+(cxScreen/12)*3+cxScreen/36,y+(cell_height+padding)*(num+1)+8,cxScreen/36,30,hwnd,NULL,NULL,NULL);
- //CreateWindow("Button","页",WS_VISIBLE|WS_CHILD|ES_CENTER,cxScreen/2+(cxScreen/12)*3+cxScreen/18,y+(cell_height+padding)*(num+1)+8,cxScreen/36,30,hwnd,NULL,NULL,NULL);
- //CreateWindow("Button","下一页",WS_VISIBLE|WS_CHILD|ES_LEFT,cxScreen/2+(cxScreen/12)*4,y+(cell_height+padding)*(num+1)+8,cxScreen/12,30,hwnd,NULL,NULL,NULL);
- CreateWindow("Static","仅供学习之用——小浣熊制作",WS_VISIBLE|WS_CHILD|ES_CENTER,0,y+(cell_height+padding)*(num+1)+42,cxScreen,50,hwnd,NULL,NULL,NULL);
- //CreateWindow("Static","vf",WS_VISIBLE|WS_CHILD|WS_HSCROLL|WS_VSCROLL,x,y+(cell_width+padding)*11,12,100,hwnd,NULL,NULL,NULL);
- }
-
- /* Initialization of Window Message*/
- void InitDialog(HWND hwnd)
- {
- MessageBox(hwnd,"欢迎使用通讯录v2.0","通讯录",MB_OK);
- MessageBox(hwnd,"请先导入通讯录文件!","通讯录",MB_OK);
- }
-
- LRESULT CALLBACK DialogProcedure(HWND hWnd,UINT msg,WPARAM wp,LPARAM lp)
- {
- int val;
- int flag=0;
- int i;
- switch(msg)
- {
- /*case WM_CREATE:
- addControls(hWnd);*/
- case WM_COMMAND:
- switch(wp)
- {
- case CREATE:
- char number[30],name[30],gender[30],age[30],sclass[30],phone[30],address[30];
-
- GetWindowText(hNumber,number,30);
- GetWindowText(hName,name,30);
- GetWindowText(hGender,gender,30);
- GetWindowText(hAge,age,30);
- GetWindowText(hClass,sclass,30);
- GetWindowText(hPhone,phone,30);
- GetWindowText(hAddress,address,30);
-
- if(strcmp(number,"")==0||strcmp(name,"")==0||strcmp(gender,"")==0||strcmp(age,"")==0||strcmp(sclass,"")==0||strcmp(phone,"")==0||strcmp(address,"")==0)
- {
- val=MessageBox(hwnd,"请填写完整!",NULL,MB_ABORTRETRYIGNORE|MB_ICONERROR);
- switch(val)
- {
- case IDABORT:
- DestroyWindow(hWnd);
- break;
- case IDRETRY:
- return 0;
- case IDIGNORE:
- break;
- }
- }
- else{
- strcpy(PersonBook[numPerson].num,number);
- strcpy(PersonBook[numPerson].name,name);
- strcpy(PersonBook[numPerson].gender,gender);
- strcpy(PersonBook[numPerson].age,age);
- strcpy(PersonBook[numPerson].major,sclass);
- strcpy(PersonBook[numPerson].phone,phone);
- strcpy(PersonBook[numPerson].address,address);
- numPerson++;
- MessageBox(hwnd,"录入成功!","添加联系人",MB_OK);
- }
- break;
- case READ:
- //char number[30],name[30],gender[30],age[30],sclass[30],phone[30],address[30];
- GetWindowText(hNumber,number,30);
- for(i=0;i<numPerson;i++)
- {
- if(strcmp(number,PersonBook[i].num)==0){
- flag=1;break;
- }
- }
- if(flag==1)
- {
- //SetWindowText(hNumber,number);
- SetWindowText(hName,PersonBook[i].name);
- SetWindowText(hGender,PersonBook[i].gender);
- SetWindowText(hAge,PersonBook[i].age);
- SetWindowText(hClass,PersonBook[i].major);
- SetWindowText(hPhone,PersonBook[i].phone);
- SetWindowText(hAddress,PersonBook[i].address);
- }
- else{
- val=MessageBox(hWnd,"查无此人!",NULL,MB_ABORTRETRYIGNORE|MB_ICONERROR);
- switch(val)
- {
- case IDABORT:
- DestroyWindow(hwnd);
- break;
- case IDRETRY:
- return 0;
- case IDIGNORE:
- break;
- }
- }
- break;
- case UPDATE:
- //MessageBox(hwnd,"修改成功!","修改联系人",MB_OK);
- GetWindowText(hNumber,number,30);
- GetWindowText(hName,name,30);
- GetWindowText(hGender,gender,30);
- GetWindowText(hAge,age,30);
- GetWindowText(hClass,sclass,30);
- GetWindowText(hPhone,phone,30);
- GetWindowText(hAddress,address,30);
-
- for(i=0;i<numPerson;i++)
- {
- if(strcmp(number,PersonBook[i].num)==0){
- flag=1;break;
- }
- }
-
- if(strcmp(number,"")==0||strcmp(name,"")==0||strcmp(gender,"")==0||strcmp(age,"")==0||strcmp(sclass,"")==0||strcmp(phone,"")==0||strcmp(address,"")==0)
- {
- val=MessageBox(hwnd,"请填写完整!",NULL,MB_ABORTRETRYIGNORE|MB_ICONERROR);
- switch(val)
- {
- case IDABORT:
- DestroyWindow(hWnd);
- break;
- case IDRETRY:
- return 0;
- case IDIGNORE:
- break;
- }
- }
- else{
- strcpy(PersonBook[i].num,number);
- strcpy(PersonBook[i].name,name);
- strcpy(PersonBook[i].gender,gender);
- strcpy(PersonBook[i].age,age);
- strcpy(PersonBook[i].major,sclass);
- strcpy(PersonBook[i].phone,phone);
- strcpy(PersonBook[i].address,address);
- MessageBox(hwnd,"修改成功!","修改联系人",MB_OK);
- }
- break;
- case DEL:
- //MessageBox(hwnd,"删除成功!","删除联系人",MB_OK);
- GetWindowText(hNumber,number,30);
- GetWindowText(hName,name,30);
- GetWindowText(hGender,gender,30);
- GetWindowText(hAge,age,30);
- GetWindowText(hClass,sclass,30);
- GetWindowText(hPhone,phone,30);
- GetWindowText(hAddress,address,30);
-
- for(i=0;i<numPerson;i++)
- {
- if(strcmp(number,PersonBook[i].num)==0){
- flag=1;break;
- }
- }
-
- if(strcmp(number,"")==0)
- {
- val=MessageBox(hwnd,"请填写完整!",NULL,MB_ABORTRETRYIGNORE|MB_ICONERROR);
- switch(val)
- {
- case IDABORT:
- DestroyWindow(hWnd);
- break;
- case IDRETRY:
- return 0;
- case IDIGNORE:
- break;
- }
- }
- else{
- numPerson--;
- strcpy(PersonBook[i].num,PersonBook[numPerson].num);
- strcpy(PersonBook[i].name,PersonBook[numPerson].name);
- strcpy(PersonBook[i].gender,PersonBook[numPerson].gender);
- strcpy(PersonBook[i].age,PersonBook[numPerson].age);
- strcpy(PersonBook[i].major,PersonBook[numPerson].major);
- strcpy(PersonBook[i].phone,PersonBook[numPerson].phone);
- strcpy(PersonBook[i].address,PersonBook[numPerson].address);
- strcpy(PersonBook[numPerson].num,"");
- strcpy(PersonBook[numPerson].name,"");
- strcpy(PersonBook[numPerson].gender,"");
- strcpy(PersonBook[numPerson].age,"");
- strcpy(PersonBook[numPerson].major,"");
- strcpy(PersonBook[numPerson].phone,"");
- strcpy(PersonBook[numPerson].address,"");
-
- MessageBox(hwnd,"删除成功!","删除联系人",MB_OK);
- }
- break;
- }
- break;
- case WM_CLOSE:
- EnableWindow(hwnd,true);
- DestroyWindow(hWnd);
- InitWindow(hwnd);
- break;
- default:
- return DefWindowProcW(hWnd,msg,wp,lp);
- }
- }
-
- void registerDialogClass(HINSTANCE hInst)
- {
- WNDCLASSW dialog={0};
-
- dialog.hbrBackground=(HBRUSH)COLOR_WINDOW;
- dialog.hCursor=LoadCursor(NULL,IDC_CROSS);
- dialog.hInstance=hInst;
- dialog.lpszClassName=L"myDialogClass";
- dialog.lpfnWndProc=DialogProcedure;
-
- RegisterClassW(&dialog);
- }
-
- void displayDialogCreate(HWND hWnd)
- {
- char* szStr = "添加联系人";
- WCHAR wszClassName[256];
- memset(wszClassName,0,sizeof(wszClassName));
- MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,
- sizeof(wszClassName)/sizeof(wszClassName[0]));
-
- HWND hDlg=CreateWindowW(L"myDialogClass",wszClassName,WS_VISIBLE|WS_OVERLAPPEDWINDOW,100,100,640,480,hWnd,NULL,NULL,NULL);
- //CreateWindowW(L"Button",L"Close",WS_VISIBLE|WS_CHILD,20,20,100,40,hDlg,(HMENU)1,NULL,NULL);
- displayDialogCreateAddControls(hDlg);
- EnableWindow(hWnd,false);
- }
-
- void displayDialogCreateAddControls(HWND hWnd)
- {
- int cxScreen, cyScreen ;
- cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
- cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
-
- CreateWindow("Static","学号 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.1,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hNumber=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.1,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","姓名 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.2,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hName=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.2,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","性别 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.3,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hGender=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.3,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","年龄 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.4,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAge=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.4,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","班级 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.5,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hClass=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.5,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","电话 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.6,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hPhone=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.6,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","地址 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.7,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAddress=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.7,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
-
- CreateWindow("Button","添加",WS_VISIBLE|WS_CHILD,cxScreen*0.2,cyScreen*0.8,cxScreen*0.2,cyScreen*0.05,hWnd,(HMENU)CREATE,NULL,NULL);
- //SendMessageW(hBut,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hGenerateImage);
-
- //hOut=CreateWindow("Edit","",WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.5,cyScreen*0.1,cxScreen*0.3,cyScreen*0.3,hWnd,NULL,NULL,NULL);
- //CreateWindowW(L"Static",NULL,WS_VISIBLE|WS_CHILD,350,60,100,100,hWnd,NULL,NULL,NULL);
- //SendMessageW(hLogo,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hLogoImage);
- }
- void displayDialogRead(HWND hWnd)
- {
- char* szStr = "查询联系人";
- WCHAR wszClassName[256];
- memset(wszClassName,0,sizeof(wszClassName));
- MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,
- sizeof(wszClassName)/sizeof(wszClassName[0]));
-
- HWND hDlg=CreateWindowW(L"myDialogClass",wszClassName,WS_VISIBLE|WS_OVERLAPPEDWINDOW,100,100,640,480,hWnd,NULL,NULL,NULL);
- //CreateWindowW(L"Button",L"Close",WS_VISIBLE|WS_CHILD,20,20,100,40,hDlg,(HMENU)1,NULL,NULL);
- displayDialogReadAddControls(hDlg);
- EnableWindow(hWnd,false);
- }
-
- void displayDialogReadAddControls(HWND hWnd)
- {
- int cxScreen, cyScreen ;
- cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
- cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
-
- CreateWindow("Static","学号 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.1,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hNumber=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.1,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","姓名 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.2,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hName=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.2,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","性别 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.3,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hGender=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.3,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","年龄 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.4,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAge=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.4,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","班级 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.5,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hClass=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.5,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","电话 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.6,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hPhone=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.6,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","地址 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.7,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAddress=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.7,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
-
- CreateWindow("Button","查询",WS_VISIBLE|WS_CHILD,cxScreen*0.2,cyScreen*0.8,cxScreen*0.2,cyScreen*0.05,hWnd,(HMENU)READ,NULL,NULL);
-
- }
- void displayDialogUpdate(HWND hWnd)
- {
- char* szStr = "修改联系人";
- WCHAR wszClassName[256];
- memset(wszClassName,0,sizeof(wszClassName));
- MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,
- sizeof(wszClassName)/sizeof(wszClassName[0]));
-
- HWND hDlg=CreateWindowW(L"myDialogClass",wszClassName,WS_VISIBLE|WS_OVERLAPPEDWINDOW,100,100,640,480,hWnd,NULL,NULL,NULL);
- //CreateWindowW(L"Button",L"Close",WS_VISIBLE|WS_CHILD,20,20,100,40,hDlg,(HMENU)1,NULL,NULL);
- displayDialogUpdateAddControls(hDlg);
- EnableWindow(hWnd,false);
- }
-
- void displayDialogUpdateAddControls(HWND hWnd)
- {
- int cxScreen, cyScreen ;
- cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
- cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
-
- CreateWindow("Static","学号 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.1,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hNumber=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.1,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","姓名 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.2,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hName=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.2,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","性别 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.3,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hGender=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.3,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","年龄 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.4,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAge=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.4,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","班级 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.5,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hClass=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.5,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","电话 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.6,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hPhone=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.6,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","地址 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.7,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAddress=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.7,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
-
- CreateWindow("Button","查询",WS_VISIBLE|WS_CHILD,cxScreen*0.2,cyScreen*0.8,cxScreen*0.08,cyScreen*0.05,hWnd,(HMENU)READ,NULL,NULL);
- CreateWindow("Button","修改",WS_VISIBLE|WS_CHILD,cxScreen*0.32,cyScreen*0.8,cxScreen*0.08,cyScreen*0.05,hWnd,(HMENU)UPDATE,NULL,NULL);
-
- }
- void displayDialogDel(HWND hWnd)
- {
- char* szStr = "删除联系人";
- WCHAR wszClassName[256];
- memset(wszClassName,0,sizeof(wszClassName));
- MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,
- sizeof(wszClassName)/sizeof(wszClassName[0]));
-
- HWND hDlg=CreateWindowW(L"myDialogClass",wszClassName,WS_VISIBLE|WS_OVERLAPPEDWINDOW,100,100,640,480,hWnd,NULL,NULL,NULL);
- //CreateWindowW(L"Button",L"Close",WS_VISIBLE|WS_CHILD,20,20,100,40,hDlg,(HMENU)1,NULL,NULL);
- displayDialogDelAddControls(hDlg);
- EnableWindow(hWnd,false);
- }
-
- void displayDialogDelAddControls(HWND hWnd)
- {
- int cxScreen, cyScreen ;
- cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
- cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
-
- CreateWindow("Static","学号 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.1,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hNumber=CreateWindow("Edit","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.1,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","姓名 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.2,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hName=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.2,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","性别 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.3,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hGender=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.3,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","年龄 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.4,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAge=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.4,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","班级 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.5,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hClass=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.5,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","电话 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.6,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hPhone=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.6,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
- CreateWindow("Static","地址 :", WS_VISIBLE|WS_CHILD|ES_RIGHT,cxScreen*0.1,cyScreen*0.7,cxScreen*0.1,cyScreen*0.08,hWnd,NULL,NULL,NULL);
- hAddress=CreateWindow("Static","", WS_VISIBLE|WS_CHILD|WS_BORDER,cxScreen*0.2,cyScreen*0.7,cxScreen*0.2,cyScreen*0.05,hWnd,NULL,NULL,NULL);
-
- CreateWindow("Button","查询",WS_VISIBLE|WS_CHILD,cxScreen*0.2,cyScreen*0.8,cxScreen*0.08,cyScreen*0.05,hWnd,(HMENU)READ,NULL,NULL);
- CreateWindow("Button","删除",WS_VISIBLE|WS_CHILD,cxScreen*0.32,cyScreen*0.8,cxScreen*0.08,cyScreen*0.05,hWnd,(HMENU)DEL,NULL,NULL);
-
- }
- void display_file(char* path)
- {
- FILE *file;
- file=fopen(path,"rb");
- fseek(file,0,SEEK_END);
- int _size=ftell(file);
- rewind(file);
- //char *data=new char[_size+1];
- fread(PersonBook,_size,1,file);
- //PersonBook[_size]='\0';
- /*char str[10];
- itoa(_size,str,10);
- MessageBox(NULL,str,"",MB_OK);*/
- //SetWindowText(hEdit,data);
-
- fclose(file);
- }
- void open_file(HWND hWnd)
- {
- OPENFILENAME ofn;
- char file_name[100];
-
- ZeroMemory(&ofn,sizeof(OPENFILENAME));
-
- ofn.lStructSize=sizeof(OPENFILENAME);
- ofn.hwndOwner=hWnd;
- ofn.lpstrFile=file_name;
- ofn.lpstrFile[0]='\0';
- ofn.nMaxFile=100;
- ofn.lpstrFilter="All files\0*.*\0Source Files\0*.CPP\0Text Files\0*.TXT\0";
- ofn.nFilterIndex=1;
-
- GetOpenFileName(&ofn);
-
- display_file(ofn.lpstrFile);
- MessageBox(NULL,ofn.lpstrFile,"",MB_OK);
- }
- void write_file(char* path)
- {
- FILE *file;
- file=fopen(path,"w");
-
- /*int _size=GetWindowTextLength(hEdit);
- char *data=new char[_size+1];
- GetWindowText(hEdit,data,_size+1);*/
-
- fwrite(PersonBook,230*item,1,file);
-
- fclose(file);
- }
-
- void save_file(HWND hWnd)
- {
- OPENFILENAME ofn;
- char file_name[100];
-
- ZeroMemory(&ofn,sizeof(OPENFILENAME));
-
- ofn.lStructSize=sizeof(OPENFILENAME);
- ofn.hwndOwner=hWnd;
- ofn.lpstrFile=file_name;
- ofn.lpstrFile[0]='\0';
- ofn.nMaxFile=100;
- ofn.lpstrFilter="All files\0*.*\0Source Files\0*.CPP\0Text Files\0*.TXT\0";
- ofn.nFilterIndex=1;
-
- GetSaveFileName(&ofn);
-
- write_file(ofn.lpstrFile);
- //MessageBox(NULL,ofn.lpstrFile,"",MB_OK);
- }
截图
主界面
删除联系人
添加联系人
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。