上一篇写的是一个单窗口的程序,这一次写一个多窗口的程序,第一个窗口都有自己的“特色”,ujfm任一个窗口都会发出beep声,关闭任何一个窗口都会关闭全部。
基本和上一个一样,只是多了几个重复的描述、注册、创建等过程。基本相同,所以只给代码。
#include<windows.h>
//声明窗口函数原型
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//---------------------------------------------------------------------------------------------
//主函数
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE PreInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hwnd1; //Windows1的窗口句柄
HWND hwnd2; //Windows2的窗口句柄
HWND hwnd3; //Windows3的窗口句柄
MSG msg;
//定义、注册窗口类"窗口1"
char lpszClassName1[]="窗口1";
WNDCLASS wc1;
wc1.style=0;
wc1.lpfnWndProc=WndProc;
wc1.cbClsExtra=0;
wc1.cbWndExtra=0;
wc1.hInstance=hInstance;
wc1.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc1.hCursor=LoadCursor(NULL,IDC_ARROW);
wc1.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//白色
wc1.lpszMenuName=NULL;
wc1.lpszClassName=lpszClassName1;
RegisterClass(&wc1);
//定义、注册窗口类"窗口2"
char lpszClassName2[]="窗口2";
WNDCLASS wc2;
wc2.style=0;
wc2.lpfnWndProc=WndProc;
wc2.cbClsExtra=0;
wc2.cbWndExtra=0;
wc2.hInstance=hInstance;
wc2.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc2.hCursor=LoadCursor(NULL,IDC_ARROW);
wc2.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);//灰色
wc2.lpszMenuName=NULL;
wc2.lpszClassName=lpszClassName2;
RegisterClass(&wc2);
hwnd1=CreateWindow( lpszClassName1, //创建Windows1窗口
"Windows1",
WS_OVERLAPPEDWINDOW,
120,50,700,500,
NULL,
NULL,
hInstance,
NULL);
hwnd2=CreateWindow( lpszClassName2, //创建Windows2窗口
"Windows2",
WS_OVERLAPPEDWINDOW,
150,80,750,550,
NULL,
NULL,
hInstance,
NULL);
hwnd3=CreateWindow( lpszClassName1, //创建Windows3窗口
"Windows3",
WS_OVERLAPPEDWINDOW,
200,130,500,300,,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd1,nCmdShow); //显示Windows1
UpdateWindow(hwnd1);
ShowWindow(hwnd2,nCmdShow); //显示Windows2
UpdateWindow(hwnd2);
ShowWindow(hwnd3,nCmdShow); //显示Windows3
UpdateWindow(hwnd3);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//---------------------------------------------------------------------------------------------
//处理消息的窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
switch(message)
{
case WM_LBUTTONDOWN:
{
MessageBeep(0);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
分享到:
相关推荐
MFC学习笔记
MFC学习笔记(onenote格式),一个朋友参加MFC培训,其教师在讲课过程中做的学习日记。图文并茂,是初学者很好的学习资料。
C++、MFC学习笔记!
MFC学习笔记.docx 自己的学习笔记。
这是一个关于 MFC菜单操作学习笔记 的资源,有需要的朋友下载阅读。
这是MFC的学习笔记,很好的。比较容易入门。
价值20000元达内win32加MFC学习笔记.
本人自学MFC期间的学习笔记,分类详细,适合初学者
Visual_C++MFC学习笔记,在你一边听视频一遍查找笔记中的内容,学习C++ MFC会更容易些。
本人从零开始学C++/MFC的时候,积累和整理的学习笔记,其中有大部分常见问题和处理办法,看过很过帖子,也查过很多资料,最终把他们记录下来。 Demo内容: ★ ::OnTimer OnTimer()函数用于实现定时控制功能,定时...
达内MFC课程完整笔记
C++ MFC 学习笔记 对初学者有很大提高
声明:所有代码和程序仅作为参考,各位可自由使用,出现一切后果自负。 博文地址:http://blog.csdn.net/shortcoder/article/details/16370697
MFC学习笔记--案例--销售系统,txt文件存储,格式固定,文件内容增加、删除、修改等,简单控件的使用,文本框,下拉框,表格,界面切换等,缓存,方便以后复习
7.16基于对话框编程对话框是一种特殊类型的窗口,绝大多数Windows程序都通过对话框与用户进行交互 2.1 创建基于对话框的 MFC 应用程序框架程序的创建
学习mfc入门参考,看看吧有点用
MFC的学习笔记,从windows API处理,消息响应机制,MFC框架,MFC内部机制,到MFC控件,MFC类库使用,多线程,DLL,数据库等
深入浅出MFC_简体中文版_侯捷 + 深入浅出MFC笔记(配合原书的好笔记)