win32创建对话框的方法(1)
2017-11-01 22:01
309 查看
win32创建对话框最简单的方法是DialogBox
你需要自己添加一个对话框资源
附上我添加的对话框资源
![](https://img-blog.csdn.net/20171101224012214?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpZHVfMjU1Mzk0MjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
resource.h
rc文件
main.cpp
需要注意的是,DlgProc中如果这个消息不需要处理就返回0让系统去处理,如果自己处理过了,就返回1,告诉系统,这个消息我已经处理过了
你需要自己添加一个对话框资源
附上我添加的对话框资源
resource.h
//{{NO_DEPENDENCIES}} // Microsoft Visual C++ 生成的包含文件。 // 供 WinDialog.rc 使用 // #define IDD_DIALOG1 101 #define IDD_DIALOG_MAIN 101 #define IDC_BUTTON_HELLO 1001 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 102 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1002 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif
rc文件
// Microsoft Visual C++ generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "winres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // 中文(简体,中国) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h\0" END 2 TEXTINCLUDE BEGIN "#include ""winres.h""\r\n" "\0" END 3 TEXTINCLUDE BEGIN "\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Dialog // IDD_DIALOG_MAIN DIALOGEX 0, 0, 309, 90 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Dialog" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "确定",IDOK,198,69,50,14 PUSHBUTTON "取消",IDCANCEL,252,69,50,14 PUSHBUTTON "ButtonHello",IDC_BUTTON_HELLO,87,39,87,15 END ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO // #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN IDD_DIALOG_MAIN, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 302 TOPMARGIN, 7 BOTTOMMARGIN, 83 END END #endif // APSTUDIO_INVOKED #endif // 中文(简体,中国) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED
main.cpp
#include <Windows.h> #include <windowsx.h> #include "resource.h" INT_PTR WINAPI DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR szCmdLine, int iCmdShow) { DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG_MAIN), NULL,DlgProc); return 0; } INT_PTR WINAPI DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CLOSE: PostQuitMessage(0); return 1; case WM_COMMAND: { switch (LOWORD(wParam)) { case IDC_BUTTON_HELLO: MessageBox(NULL, TEXT("hello,world!"), TEXT("tips"), MB_OK); return 1; } } } return 0; }
需要注意的是,DlgProc中如果这个消息不需要处理就返回0让系统去处理,如果自己处理过了,就返回1,告诉系统,这个消息我已经处理过了
相关文章推荐
- win32创建对话框的方法(2)
- 在DLL中产生对话框的方法一(Win32 DLL)(转)
- 在DLL中产生对话框的方法一(Win32 DLL)
- 在DLL中产生对话框的方法一(Win32 DLL)(转)
- firefox “阻止此页面创建其他对话框”的解决方法
- Win32 DLL中创建对话框
- 用多线程方法实现在MFC/WIN32中调用OpenGL函数并创建OpenGL窗口
- C++进阶—>Win32 多线程的创建方法和基本使用
- 在对话框上创建视图的方法总结
- 对话框上创建视图方法总结
- 在DLL中产生对话框的方法一(Win32 DLL)(转)
- 在对话框上创建视图的方法总结
- Visual c++例子,可不使用常规的对话框资源模板的情况下,动态创建对话框的方法
- Win32 多线程的创建方法和基本使用 .
- Win32编程 创建从资源文件定义的对话框
- Android中对话框(Dialog)的创建方法
- 在DLL中产生对话框的方法一(Win32 DLL)
- Win32 API创建对话框DialogBox添加快捷键Accelerator的方式探索
- 在DLL中产生对话框的方法一(Win32 DLL)(转)
- 用vs2005创建第一个win32程序(附解决error c2731 c2440方法)