NativeWindow_02_DialogBoxParam_VC6
PS: 代碼參考于<<Windows環境下32位匯編語言程序設計.chm>>,第5章,"5.4 對 話 框(2)" 。
?
ZC: 與CreateWindow(Ex)相比,優點在于:(1)、窗口內容 所見即所得,(2)、寫一個基本窗口所用的代碼比CreateWindow(Ex)少(只需要寫消息回調函數)。
ZC:?與MFC相比,程序的代碼少多了。
?
1、
創建"Win32 Application"的 空工程
?
PS: 下面的3個文件(WinMain_z.cpp,DialogMain.rc,resource.h),直接復制到工程目錄,然后添加到工程,即可。一個簡單的窗口測試程序就OK了。
?
2、
創建源碼文件 WinMain_Z.cpp,鍵入如下代碼:
1 #include <windows.h> 2 #include "resource.h" 3 4 HINSTANCE g_hInstance = 0; 5 6 BOOL CALLBACK ProcDialog( 7 HWND _hWnd, // 窗口句柄 8 UINT _uMsg, // 消息ID(identifier) 9 WPARAM _wParam, 10 LPARAM _lParam) 11 { 12 if (WM_CLOSE == _uMsg) 13 { 14 EndDialog(_hWnd,NULL); 15 } 16 else if (WM_INITDIALOG == _uMsg) 17 { 18 //HICON hIcon = LoadIcon(g_hInstance, ICO_MAIN); 19 //SendMessage(_hWnd, WM_SETICON, ICON_BIG, hIcon); 20 } 21 else if (WM_COMMAND == _uMsg) 22 { 23 WORD wLow = LOWORD(_wParam); 24 if (IDOK == wLow) 25 { 26 EndDialog(_hWnd, NULL); 27 } 28 } 29 else 30 { 31 return false; 32 } 33 return true; 34 } 35 36 int WINAPI WinMain( 37 HINSTANCE _hInstance, // 當前 hInstance句柄 38 HINSTANCE _hPrevInstance, // 之前的 hInstance句柄 39 LPSTR _lpCmdLine, // 命令行 40 int _nCmdShow) // 顯示狀態 41 { 42 g_hInstance = _hInstance; 43 44 DialogBoxParam(_hInstance, (char*)IDD_DIALOG_MAIN, NULL, ProcDialog, NULL); 45 ExitProcess(NULL); 46 return 0; 47 }?
?
3、
資源文件:
3.1、DialogMain_Z.rc
1 //Microsoft Developer Studio generated resource script. 2 // 3 #include "resource.h" 4 5 #define APSTUDIO_READONLY_SYMBOLS 6 ///// 7 // 8 // Generated from the TEXTINCLUDE 2 resource. 9 // 10 #include "afxres.h" 11 12 ///// 13 #undef APSTUDIO_READONLY_SYMBOLS 14 15 ///// 16 // Chinese (中國) resources 17 18 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) 19 #ifdef _WIN32 20 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED 21 #pragma code_page(936) 22 #endif //_WIN32 23 24 ///// 25 // 26 // Dialog 27 // 28 29 IDD_DIALOG_MAIN DIALOG DISCARDABLE 100, 100, 300, 150 30 STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | 31 WS_CAPTION | WS_SYSMENU 32 CAPTION "主對話框" 33 FONT 10, "System" 34 BEGIN 35 DEFPUSHBUTTON "確定",IDOK,243,6,50,14 36 END 37 38 39 ///// 40 // 41 // DESIGNINFO 42 // 43 44 #ifdef APSTUDIO_INVOKED 45 GUIDELINES DESIGNINFO DISCARDABLE 46 BEGIN 47 IDD_DIALOG_MAIN, DIALOG 48 BEGIN 49 LEFTMARGIN, 7 50 RIGHTMARGIN, 293 51 TOPMARGIN, 6 52 BOTTOMMARGIN, 143 53 END 54 END 55 #endif // APSTUDIO_INVOKED 56 57 58 #ifdef APSTUDIO_INVOKED 59 ///// 60 // 61 // TEXTINCLUDE 62 // 63 64 1 TEXTINCLUDE DISCARDABLE 65 BEGIN 66 "resource.h\0" 67 END 68 69 2 TEXTINCLUDE DISCARDABLE 70 BEGIN 71 "#include ""afxres.h""\r\n" 72 "\0" 73 END 74 75 3 TEXTINCLUDE DISCARDABLE 76 BEGIN 77 "\r\n" 78 "\0" 79 END 80 81 #endif // APSTUDIO_INVOKED 82 83 #endif // Chinese (中國) resources 84 ///// 85 86 87 88 #ifndef APSTUDIO_INVOKED 89 ///// 90 // 91 // Generated from the TEXTINCLUDE 3 resource. 92 // 93 94 95 ///// 96 #endif // not APSTUDIO_INVOKED?
?
3.2、resource.h
1 //{{NO_DEPENDENCIES}} 2 // Microsoft Developer Studio generated include file. 3 // Used by DialogMain.rc 4 // 5 #define IDD_DIALOG_MAIN 101 6 7 // Next default values for new objects 8 // 9 #ifdef APSTUDIO_INVOKED 10 #ifndef APSTUDIO_READONLY_SYMBOLS 11 #define _APS_NEXT_RESOURCE_VALUE 102 12 #define _APS_NEXT_COMMAND_VALUE 40001 13 #define _APS_NEXT_CONTROL_VALUE 1000 14 #define _APS_NEXT_SYMED_VALUE 101 15 #endif 16 #endif?
ZC: 在最后 RebuildAll 的時候,resource.h文件?會報錯:“... ...\resource.h(16) : fatal error RC1004: unexpected end of file found”
ZC: 解決 : 在?resource.h文件 的最后多打幾個回車 再?RebuildAll 就OK了。
?
?
X
?
轉載于:https://www.cnblogs.com/cppskill/p/5222033.html
總結
以上是生活随笔為你收集整理的NativeWindow_02_DialogBoxParam_VC6的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 函数凸性与Jensen不等式
- 下一篇: 瑞利衰落信道思考