对话框的两种模式

模态对话框:

点击打开后,如果不把下面这个窗口关掉,不能操作它后面的窗口

阻塞

非模态对话框:

模态对话框

DialogBoxA macro (winuser.h) - Win32 apps | Microsoft Docs

DLGPROC (winuser.h) - Win32 apps | Microsoft Docs

在 Windows 里面,bool 类型其实就是 int 类型,和 INT_PTR 是一样的

DLGPROC Dlgproc;INT_PTR Dlgproc(HWND unnamedParam1,UINT unnamedParam2,WPARAM unnamedParam3,LPARAM unnamedParam4
)
{...}
#include <Windows.h>
//包含头文件
#include "resource.h"//对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{//创建模态对话框/* 需要把整型转换成字符串类型 *//* 没有父窗口 值为 NULL */DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{/* 一定要返回 FALSE 没有处理的消息交给操作系统处理 */return FALSE;/* 不管我有没有处理 系统都不用处理 */return TRUE;
}void DialogBoxA([in, optional]  hInstance,         //应用程序实例句柄[in]            lpTemplate,        //对话框的资源模板[in, optional]  hWndParent,        //父窗口句柄[in, optional]  lpDialogFunc       //对话框窗口处理函数
);

resource.h

//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 FirstWindow.rc 使用
//
#define IDI_MAIN                        101
#define IDI_LOGO                        102
#define IDC_CURSOR                      103
#define IDD_MAIN_DLG                    104// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE        106
#define _APS_NEXT_COMMAND_VALUE         40001
#define _APS_NEXT_CONTROL_VALUE         1001
#define _APS_NEXT_SYMED_VALUE           101
#endif
#endif

return TRUE 但是没有处理会出现下面的情况

居中显示

添加资源

选择 Dialog

点击新建对话框

按 shift + ctrl + e 打开资源视图,更改名字为 IDD_MAIN_DLG

资源 ID 统一大写,这些 ID 是一些宏定义,宏定义统一用大写

处理关闭窗口的消息 WM_CLOSE

模态对话框有专门的关闭函数 EndDialog

EndDialog function (winuser.h) - Win32 apps | Microsoft Docs

查看返回值

(Winuser.h) WM_COMMAND消息 - Win32 apps | Microsoft Docs

命令消息能够响应菜单的点击、按钮的点击以及快捷键的响应

#include <Windows.h>
#include "resource.h"//对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{//创建模态对话框/* 需要把整数类型转换成字符串类型 *//* 没有父窗口 值为 NULL */int nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);int n = 5;return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND://低位字switch (LOWORD(wParam)){//点了取消按钮case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;//点了确定按钮case IDOK:MessageBox(hWnd, L"点击确定",L"提示", MB_OK);break;}}/* 一定要返回 FALSE */return FALSE;
}

#include <Windows.h>
#include "resource.h"//对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{//创建模态对话框/* 需要把整数类型转换成字符串类型 *//* 没有父窗口 值为 NULL */int nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);int n = 5;return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_CREATE:MessageBox(hWnd, L"这是WM_CREATE消息", L"提示", MB_OK);// 对话框初始化消息case WM_INITDIALOG:   // 设置对话框的标题SetWindowText(hWnd,L"这是一个对话框程序");break;// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){// 点了取消按钮case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;case IDOK:MessageBox(hWnd, L"点击确定",L"提示", MB_OK);break;}}/* 一定要返回 FALSE */return FALSE;
}

WM_CREATE 在对话框里面被  WM_INITDIALOG 接管了,对话框不再响应  WM_CREATE 消息

BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){// 对话框初始化消息case WM_INITDIALOG:    // 此时对话框还没有显示 但是对话框已经创建好了MessageBox(hWnd, L"初始化", L"提示", MB_OK);// 设置对话框标题 [如果对话框没有设置好 不能给对话框设置标题]SetWindowText(hWnd,L"这是一个对话框程序");break;}/* 一定要返回 FALSE */return FALSE;
}

设置对话框的图标

把图标放在工程里面

导入图标、加载图标:Windows --- 第一个Windows窗口程序_小雪菜本菜的博客-CSDN博客_窗口程序

设置图标:WM_SETICON消息 (Winuser.h) - Win32 apps | Microsoft Docs

#include <Windows.h>
#include "resource.h"//应用程序实例句柄
HINSTANCE g_hInstance;  //对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//hInstance在WinMain中需要把它传到窗口处理函数中 用全局变量
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{g_hInstance = hInstance;//创建模态对话框/* 需要把整数类型转换成字符串类型 *//* 没有父窗口 值为 NULL *///创建主窗口int nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);int n = 5;return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_CREATE:MessageBox(hWnd, L"这是WM_CREATE消息", L"提示", MB_OK);// 对话框初始化消息case WM_INITDIALOG:   {// 设置对话框标题SetWindowText(hWnd, L"这是一个对话框程序");// 加载图标 返回图标句柄HICON hICON = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_MAIN));// 发送 WM_SETICON 消息// 大图标 LPARAM表示图标的句柄SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hICON);// 小图标SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hICON);break;}// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){// 点了取消按钮case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;// 点了确定按钮case IDOK:MessageBox(hWnd, L"点击确定",L"提示", MB_OK);break;}}/* 一定要返回 FALSE */return FALSE;
}
/* 强制转换为 LPCTSR */
HICON hICON = LoadIcon(g_hInstance, (LPCTSR)IDI_MAIN);

变量的命名规则

命名规则
    驼峰命名法:StuManagerSystem,首字母大写

在 Windows 中采用匈牙利命名法,前缀是类型,并借鉴驼峰命名法
    sz(字符数组类型)StudentName

bFind(是否找到,bool 类型返回 TRUE 或者 FALSE)

dw

a:数组
b:布尔类型
by:字节
c:字符
dw:DWORD类型
fn:函数指针
h:句柄
i 或者 n:整型
w:WORD
p:指针
sz:字符串、字符数组

m_:成员变量
 g_:全局变量

设置标题

打开工具箱,添加控件

添加控件 Picture Control

登录界面的制作

添加资源

加入编辑框,选中按 ctrl 键复制一个新的控件

ctrl 键选中两个文本,点击左对齐,就可以通过小键盘↑←↓→实现对齐

顶端对齐

让它居中显示

#include <Windows.h>
#include "resource.h"//应用程序实例句柄
HINSTANCE g_hInstance;  //登陆对话框处理函数
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{//创建登陆窗口DialogBox(hInstance, MAKEINTRESOURCE(IDD_LOGIN_DLG), NULL, LoginDlgProc);g_hInstance = hInstance;//创建模态对话框/* 需要把整数类型转换成字符串类型 *//* 没有父窗口 值为 NULL *///创建主窗口int nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_CREATE:MessageBox(hWnd, L"这是WM_CREATE消息", L"提示", MB_OK);// 对话框初始化消息case WM_INITDIALOG:   {// 设置对话框标题//SetWindowText(hWnd, L"这是一个对话框程序");// 加载图标HICON hICON = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_MAIN));//发送消息//发送大图标SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hICON);//发送小图标SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hICON);break;}// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){// 点了取消按钮case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;case IDOK:MessageBox(hWnd, L"点击确定",L"提示", MB_OK);break;}}/* 一定要返回 FALSE */return FALSE;
}
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){//点了取消按钮 退出这个对话框case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;case IDOK:break;}}return FALSE;
}

输入用户名和密码后登陆系统

加入密码风格

GetDlgItemTextA function (winuser.h) - Win32 apps | Microsoft Docs

#include <Windows.h>
#include "resource.h"//应用程序实例句柄
HINSTANCE g_hInstance;  //登陆对话框处理函数
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{//创建登陆窗口DialogBox(hInstance, MAKEINTRESOURCE(IDD_LOGIN_DLG), NULL, LoginDlgProc);g_hInstance = hInstance;//创建模态对话框/* 需要把整数类型转换成字符串类型 *//* 没有父窗口 值为 NULL *///创建主窗口int nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_CREATE:MessageBox(hWnd, L"这是WM_CREATE消息", L"提示", MB_OK);// 对话框初始化消息case WM_INITDIALOG:   {// 设置对话框标题//SetWindowText(hWnd, L"这是一个对话框程序");// 加载图标HICON hICON = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_MAIN));//发送消息//发送大图标SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hICON);//发送小图标SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hICON);break;}// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){// 点了取消按钮case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;case IDOK:MessageBox(hWnd, L"点击确定",L"提示", MB_OK);break;}}/* 一定要返回 FALSE */return FALSE;
}
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){//点了取消按钮 退出、关闭当前对话框case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;// 点击登陆按钮 登陆case IDOK:{//获取控件的值/*控件的值如下用户名:admin密  码:123456*///字符数组存储用户名wchar_t szUsername[100];wchar_t szPassword[100];//获取对话框控件里面的文本 传入控件ID 字符串保存到szUsername 字符个数GetDlgItemText(hWnd, IDC_USERNAME, szUsername,100);GetDlgItemText(hWnd, IDC_PASSWORD, szPassword, 100);//查看是否获取成功MessageBox(hWnd,szUsername,L"提示",MB_OK);break;}}}return FALSE;
}

#include <Windows.h>
#include "resource.h"//应用程序实例句柄
HINSTANCE g_hInstance;  //登陆对话框处理函数
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{g_hInstance = hInstance;//创建登陆窗口int nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_LOGIN_DLG), NULL, LoginDlgProc);if (nResult == IDOK){//判断返回值 只有nResult == IDOK表示成功 再创建主窗口 //点击取消返回 IDCANCEL 不会创建主窗口DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);}//创建模态对话框/* 需要把整数类型转换成字符串类型 *//* 没有父窗口 值为 NULL */return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_CREATE:MessageBox(hWnd, L"这是WM_CREATE消息", L"提示", MB_OK);// 对话框初始化消息case WM_INITDIALOG:   {// 设置对话框标题//SetWindowText(hWnd, L"这是一个对话框程序");// 加载图标HICON hICON = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_MAIN));//发送消息//发送大图标SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hICON);//发送小图标SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hICON);break;}// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){// 点了取消按钮case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;case IDOK:MessageBox(hWnd, L"点击确定",L"提示", MB_OK);break;}}/* 一定要返回 FALSE */return FALSE;
}
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){//点了取消按钮 退出、关闭当前对话框case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;// 点击登陆按钮 登陆case IDOK://获取控件的值/*控件的值如下用户名:admin密  码:123456*/wchar_t szUsername[100];wchar_t szPassword[100];//获取对话框控件里面的文本 传入控件ID 字符串保存在 szUsernameGetDlgItemText(hWnd, IDC_USERNAME, szUsername,100);GetDlgItemText(hWnd, IDC_PASSWORD, szPassword, 100);//查看是否获取成功MessageBox(hWnd,szUsername,L"提示",MB_OK);/* 字符串判断wcscmpszUsername 与 admin 判断等于 0 表示相等*/if(wcscmp(szUsername,L"admin") == 0 && wcscmp(szPassword,L"123456") == 0){//成功 关闭当前登陆窗口 返回IDOK给nResult表示成功EndDialog(hWnd, IDOK);}else{//失败 提示失败MessageBox(hWnd, L"用户名或密码错误!", L"温馨提示", MB_OK);}break;}}return FALSE;
}

制作 "关于" 窗口

添加资源,弹出关于窗口

效果如下

#include <Windows.h>
#include "resource.h"//应用程序实例句柄
HINSTANCE g_hInstance;  //登陆对话框处理函数
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//对话框窗口处理函数
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//关于对话框处理函数
BOOL CALLBACK AboutDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{g_hInstance = hInstance;//创建登陆窗口int nResult = DialogBox(hInstance, MAKEINTRESOURCE(IDD_LOGIN_DLG), NULL, LoginDlgProc);if (nResult == IDOK){//判断返回值 只有nResult == IDOK表示成功 再创建主窗口 //点击取消返回 IDCANCEL 不会创建主窗口 直接退出 只能输入正确的密码才会进入主窗口DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DLG), NULL, MainDlgProc);}//创建模态对话框/* 需要把整数类型转换成字符串类型 *//* 没有父窗口 值为 NULL */return 0;
}
BOOL CALLBACK MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){case WM_CREATE:MessageBox(hWnd, L"这是WM_CREATE消息", L"提示", MB_OK);// 对话框初始化消息case WM_INITDIALOG:   {// 设置对话框标题//SetWindowText(hWnd, L"这是一个对话框程序");// 加载图标HICON hICON = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_MAIN));//发送消息//发送大图标SendMessage(hWnd, WM_SETICON, ICON_BIG, (LPARAM)hICON);//发送小图标SendMessage(hWnd, WM_SETICON, ICON_SMALL, (LPARAM)hICON);break;}// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){// 点了取消按钮case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;case IDOK:MessageBox(hWnd, L"点击确定",L"提示", MB_OK);break;//在主窗口的窗口处理函数中处理关于按钮case IDC_ABOUT:DialogBox(g_hInstance, MAKEINTRESOURCE(IDD_ABOUT_DLG), NULL, AboutDlgProc);break;}}/* 一定要返回 FALSE */return FALSE;
}
BOOL CALLBACK LoginDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){// 窗口关闭消息case WM_CLOSE:EndDialog(hWnd, IDCANCEL);break;// 命令消息case WM_COMMAND:switch (LOWORD(wParam)){//点了取消按钮 退出、关闭当前对话框case IDCANCEL:EndDialog(hWnd, IDCANCEL);break;// 点击登陆按钮 登陆case IDOK://获取控件的值/*控件的值如下用户名:admin密  码:123456*/wchar_t szUsername[100];wchar_t szPassword[100];//获取对话框控件里面的文本 传入控件ID 字符串保存在 szUsernameGetDlgItemText(hWnd, IDC_USERNAME, szUsername,100);GetDlgItemText(hWnd, IDC_PASSWORD, szPassword, 100);//查看是否获取成功MessageBox(hWnd,szUsername,L"提示",MB_OK);/* 字符串判断 szUsername 与 admin 判断等于 0 表示相等*/if(wcscmp(szUsername,L"admin") == 0 && wcscmp(szPassword,L"123456") == 0){//成功 关闭当前登陆窗口EndDialog(hWnd, IDOK);}else{//失败MessageBox(hWnd, L"用户名或密码错误!", L"温馨提示", MB_OK);}break;}}return FALSE;
}
BOOL CALLBACK AboutDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{switch (uMsg){// 关闭窗口case WM_CLOSE:EndDialog(hWnd, IDCANCEL);// IDOK和IDCANCEL都是关闭窗口case WM_COMMAND:switch (wParam){case IDOK:case IDCANCEL:EndDialog(hWnd,IDCANCEL);break;}}return FALSE;
}

Windows --- 模态对话框相关推荐

  1. Windows SDK 非模态对话框的消息处理

    在SDK中使用非模态对话框时的几个问题: 1.为什么要调用IsDialogMessage?? 2.非模态对话框与主窗口有什么区别? 3.如果不调用IsDialogMessage,消息能不能传递到对话框 ...

  2. 变分模态分解_Android小部件示例中的模态对话框(弹出)

    变分模态分解 在此示例中,我们将看到如何在主屏幕中创建一个可以打开弹出对话框的Android小部件. 如您所知,Android Widgets是小型应用程序,基本上可以做两件事. 按下时启动新的活动, ...

  3. 对话框编程之非模态对话框 [04]

    1.在主对话框中创建一个新的按钮.并添加单击事件代码如下: void CMfc测试项目Dlg::OnBnClickedCreateNomodul() {// TODO: 在此添加控件通知处理程序代码C ...

  4. c#中的模态对话框和非模态对话框

    模态对话框 弹出窗口阻止调用窗口的所有消息响应. 只有在弹出窗口结束后调用窗口才能继续. 在模态窗口"关闭"后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态 ...

  5. 模态对话框的消息循环原理及分析笔记

    简述: APP消息循环和模态对话框中局部消息循环的关系 根据上图可以看出,在APP的消息循环再派发ONOK消息后,调用ModalDlg的响应函数,pWnd->OnOk();在该消息中, 会 进入 ...

  6. 模态对话框和非模态对话框的消息循环分析

    1.非模态对话框和父窗口共享当前线程的消息循环 2.模态对话框新建一个新的消息循环,并由当前消息循环派发消息,而父窗口.模态对话框屏蔽了用户对它父窗口的操作,但是不是在消息循环里面屏蔽,所以给父窗口发 ...

  7. MFC非模态对话框实例

    [转载]MFC非模态对话框实例 2012-06-17 16:21:41|  分类: C++/MFC |  标签: |字号大中小 订阅 实例目的 在Windows环境中,对话框是一种常用的输入输出手段. ...

  8. 创建模态对话框和非模态对话框

    MFC新手一枚,还是先从创建对话框开始吧. Windows有两种对话框,模态对话框(Modal Dialogue Box)和非模态对话框(Modeless). 模态对话框(Modal Dialogue ...

  9. java modal_Java 源码-模态对话框(Modal Dialog Box)的实现

    所谓的模态对话框,即弹出后用户只能与对话框交互,而不能与背景页面交互的对话框. (modal specifies whether dialog blocks user input to other t ...

最新文章

  1. 如何精确测量一段代码的执行时间
  2. GDCM:读取gdcm::DataSetHelper的测试程序
  3. java:蓝桥杯,矩形面积交
  4. Hive体系结构(二)Hive的执行原理、与关系型数据库的比较
  5. 在Socket做服务器,在手机上用Http访问
  6. prometheus-net.DotNetRuntime 获取 CLR 指标原理解析
  7. HTML5新属性 Canves的整体学习
  8. 18.QThread线程创建
  9. 用C语言进行完数的判断(for循环和数组思想)
  10. html鼠标经过状态,30种炫酷html5鼠标滑过图片标题显示效果
  11. 尺子英语怎么读计算机英语怎么读,尺子的英文是什么用英语怎么说
  12. 解决Android studio启动模拟器一直Waiting for target device to come online的一种方式
  13. Linux cat命令学习
  14. 《走出自己的围城-2017年终总结》
  15. [vue3] 富文本
  16. vue3 reactive函数用法
  17. Android事件动机模式,2021最新Java大厂面试真题大全
  18. 2019最新泰牛PHP大牛班(基础+高级+实战+全套课件)
  19. 记录贴:RuntimeError: version_ <= kMaxSupportedFileFormatVersion INTERNAL ASSERT FAILED at /pytorch/caff
  20. php 汉王云名片_超级云名片,让你的客户不与你说“考虑一下”!

热门文章

  1. springClound之整合Eureka
  2. 从B+树到LSM树,及LSM树在HBase中的应用
  3. 项目介绍,项目架构和微服务划分
  4. Blender图解教程:新手入门练习1(简单的立体模型)
  5. 人工智能快速发展的核心要素,大数据、算法和超级计算的介绍
  6. 抖音下拉宝说电影“没有女人的国家“,印度女孩悲催人生!
  7. 生活中总结出来的各种定律
  8. 你最近在读什么书,及CSAPP上的一个疑问
  9. 学习QT的阶段性总结
  10. AAC ADTS头详解