标签:
ZC: 与CreateWindow(Ex)相比,优点在于:(1)、窗口内容所见即所得,(2)、写一个基本窗口所用的代码比CreateWindow(Ex)少,(3)、比MFC程序的代码少多了
PS: 代码参考于<<Windows环境下32位汇编语言程序设计.chm>>,第5章,"5.4 对 话 框(2)" 。
1、
创建"Win32 Application"的空工程
PS: 下面的3个文件(WinMain_z.cpp,DialogMain.rc,resource.h),直接复制到工程目录,然后添加到工程,即可。一个简单的窗口测试程序就OK了。
2、
创建源码文件 WinMain_z.cpp,键入如下代码:
1 #include <windows.h> 2 3 #include "resource.h" 4 5 HINSTANCE g_hInstance = 0; 6 7 BOOL CALLBACK ProcDialog( 8 HWND _hWnd, // 窗口句柄 9 UINT _uMsg, // 消息ID(identifier) 10 WPARAM _wParam, 11 LPARAM _lParam) 12 { 13 if (WM_CLOSE == _uMsg) 14 { 15 EndDialog(_hWnd,NULL); 16 } 17 else if (WM_INITDIALOG == _uMsg) 18 { 19 //HICON hIcon = LoadIcon(g_hInstance, ICO_MAIN); 20 //SendMessage(_hWnd, WM_SETICON, ICON_BIG, hIcon); 21 } 22 else if (WM_COMMAND == _uMsg) 23 { 24 WORD wLow = LOWORD(_wParam); 25 if (IDOK == wLow) 26 { 27 EndDialog(_hWnd, NULL); 28 } 29 } 30 else 31 { 32 return false; 33 } 34 return true; 35 } 36 37 int WINAPI WinMain( 38 HINSTANCE _hInstance, // 当前 hInstance句柄 39 HINSTANCE _hPrevInstance, // 之前的 hInstance句柄 40 LPSTR _lpCmdLine, // 命令行 41 int _nCmdShow) // 显示状态 42 { 43 g_hInstance = _hInstance; 44 45 DialogBoxParam(_hInstance, (char*)IDD_DIALOG_MAIN, NULL, ProcDialog, NULL); 46 ExitProcess(NULL); 47 }
3、
资源文件:
3.1、DialogMain.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
X
NativeWindow_02_DialogBoxParam_VC6
标签:
原文地址:http://www.cnblogs.com/CodeSkill/p/5218755.html