一、创建父窗口
1、创建资源脚本
File --> New --> Resource Script
2、导入资源脚本头文件
Resource Script --> Add Files to Folder --> resource.h
3、创建一个窗口
resource.h --> 资源脚本 --> Insert --> Dialog
二、布局
三、修改属性
父窗口
PE工具:IDD_DIALOG_MAIN
按钮
PE查看:IDC_BUTTON_PE
关于 : IDC_BUTTON_ABOUT
退出 : IDC_BUTTON_LOGOUT
四、生成资源文件
在修改属性完成后,F7生成资源文件,在resource.h中
五、创建窗口
DialogBox函数(详情参考msdn)
第一个参数:句柄
第二个参数:你画的那个模板
第三个参数:父窗口的句柄
第四个参数:消息处理函数
INT_PTR DialogBox(
HINSTANCE hInstance, // handle to module
LPCTSTR lpTemplate, // dialog box template
HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc // dialog box procedure
);
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG_MAIN),NULL,DialogProc)
六、处理函数
简单实现,窗口右上角X和点击退出,退出当前程序功能
//消息处理函数
BOOL CALLBACK DialogProc(
HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_CLOSE :
{
EndDialog(hwndDlg, 0);
return TRUE;
}
case WM_COMMAND :
switch (LOWORD (wParam))
{
case IDC_BUTTON_LOGOUT:
EndDialog(hwndDlg, 0);
return TRUE;
}
break ;
}
return FALSE ;
}
七、编译
导入#include "resource.h"头,进行编译,基本退出功能实现了
#include "stdafx.h"
#include "resource.h"
//消息处理函数
BOOL CALLBACK DialogProc(
HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_CLOSE :
{
EndDialog(hwndDlg, 0);
return TRUE;
}
case WM_COMMAND :
switch (LOWORD (wParam))
{
case IDC_BUTTON_LOGOUT:
EndDialog(hwndDlg, 0);
return TRUE;
}
break ;
}
return FALSE ;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG_MAIN),NULL,DialogProc);
return 0;
}