人亦已歌 发表于 2023-2-15 12:19:06

VS使用对话框资源创建C/C++窗口项目过程

需要两步:
1、创建消息处理函数
2、处理消息

一、创建c++空项目(注意:项目目录不能出现中文)














二、编写入口程序代码


#include <Windows.h>
#include "resource.h"



//主入口
int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
      INT_PTR CALLBACK MainDlgProc(HWND bDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
      
      DialogBox(hinstance,//入口HINSTANCE
                MAKEINTRESOURCE(IDD_MAIN),//对话框窗口模板句柄
                NULL,//父窗口
                MainDlgProc);//窗口过程
}


//窗口过程函数
INT_PTR CALLBACK MainDlgProc(HWND bDlg, //句柄
      UINT uMsg, //消息
      WPARAM wParam, //参数
      LPARAM lParam)//参数
{
      BOOL bRet=TRUE;

      //处理窗口消息
    switch(uMsg)
                {//对窗口转发过来的消息进行处理
                case WM_LBUTTONDOWN:
                MessageBox(bDlg,"鼠标单击了","Demo",MB_OK);
                break;
                case WM_COMMAND://命令消息--点击按钮时走这里
                        switch(LOWORD(wParam)){//wParam的低地址是按钮的ID
                        case IDC_BUTTON1:
                              MessageBox(bDlg,"点击了按钮1","Demo",MB_OK);
                              break;
                        case IDC_BUTTON2:
                              MessageBox(bDlg,"点击了按钮2","Demo",MB_OK);
                              break;
                        case IDOK:
                              MessageBox(bDlg,"点击了确定按钮","Demo",MB_OK);
                              break;
                        case IDCLOSE:
                              MessageBox(bDlg,"点击了取消按钮","Demo",MB_OK);
                              break;
                        default:
                              bRet=FALSE;
                              break;
                        }
               
                break;
                case WM_CLOSE://关闭窗口时
                        EndDialog(bDlg,0);
                        break;
                default://其它消息交由windows处理,DefWindowProc是系统默认的窗口过程
                        bRet=FALSE;
                        break;
                }

                return bRet;
};









小莲子妈妈 发表于 2023-2-17 12:11:59

^真是厉害啊谢谢你的点悟

309574018 发表于 2023-2-17 23:17:32

不错不错。说出了我在大学的困惑和努力的方向。。谢谢!!

我要发奋 发表于 2023-2-18 22:29:00

同样的说法,感动!我有时候有一种感觉就是经常写程序,写到一定程度就没有太大的提高了。总觉得自己学的差不多了!看了这篇文章真的惭愧越年越心虚!越感到自己的无知!再一次谢了!发自内心的!有了以后的想法!还是感谢!别的什么都不说了!

本人韩杉 发表于 2023-2-19 19:35:20

^做为一个刚入门程序的我都感触良多..向你表示120分的敬意

fwqer 发表于 2023-2-20 14:42:35

感触很深

Sun-Ny 发表于 2023-2-21 16:56:04

有道理啊

沁儿 发表于 2023-2-22 03:00:22

谢谢你给了我一个好的起点

寂寞的悲哀 发表于 2023-2-23 02:10:00

很有用对我这个新学者来说。我会努力的

amuge 发表于 2023-2-24 16:24:28

是啊,受益匪浅!!!
页: [1] 2 3 4
查看完整版本: VS使用对话框资源创建C/C++窗口项目过程