逆向学习-windows对话框资源

举报
亿人安全 发表于 2023/05/31 22:29:56 2023/05/31
【摘要】 对话框的创建模态对话框和非模态对话框的区别就是 非模态对话框 如果被打开了 你还可以继续操作这个对话框后面的其他对话框就比如这个属性对话框就是一个非模态对话框 打开它的同时 一样可以操作后面的main.app这些创建非模态对话框往对话框添加东西 也是很简单的 直接拖直接点工具箱 想添加什么 拖过去就行了然后保存 然后在来运行刚才的程序添加的东西也都在上面创建模态对话框要用EndDialog ...

对话框的创建

模态对话框和非模态对话框的区别就是 非模态对话框 如果被打开了 你还可以继续操作这个对话框后面的其他对话框

就比如这个属性对话框就是一个非模态对话框 打开它的同时 一样可以操作后面的main.app这些

创建非模态对话框

往对话框添加东西 也是很简单的 直接拖


直接点工具箱 想添加什么 拖过去就行了

然后保存 然后在来运行刚才的程序

添加的东西也都在上面

创建模态对话框

要用EndDialog 函数来终止

#include<Windows.h>
#include<CommCtrl.h>
#include"resource.h"
INT_PTR CALLBACK Dlgproc(   //回调函数
    HWND hWnd,
    UINT Umsg,
    WPARAM wparam,
    LPARAM lparam
) 
{
    switch (Umsg)
    {
        case WM_INITDIALOG:
        {
            MessageBoxW(hWnd, L"窗口创建了", L"标题", MB_OK);
            break;
        }
        case WM_CLOSE:
        {
            /*DestroyWindow(hWnd);
            PostQuitMessage(0);*/
            EndDialog(hWnd, 0);
        }
        default:
        {
            return FALSE;
        }
        
    }
    return TRUE;
}
int WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR     lpCmdLine,
    int       nShowCmd
) 
{
    DialogBoxW(hInstance, MAKEINTRESOURCEW(IDD_DIALOG1), NULL, Dlgproc); //创建模态对话框
    //HWND hwnd=CreateDialogW(hInstance, MAKEINTRESOURCEW(IDD_DIALOG1),NULL,Dlgproc);//创建非模态对话框
    //ShowWindow(hwnd, SW_SHOWNORMAL);//显示对话框
    //MSG msg{ 0 };
    //while (GetMessage(&msg,0,0,0))   //发送消息
    //{
    //  TranslateMessage(&msg);
    //  DispatchMessageW(&msg);
    //}
​
    return 0;
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。