windows程序
来源:互联网 发布:python 弹出消息框 编辑:程序博客网 时间:2024/06/06 23:16
#include <windows.h>
#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
//设计一个窗口类
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance; //
wndcls.lpfnWndProc=WinSunProc;
wndcls.lpszClassName="sunxin2006";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW|CS_VREDRAW;
RegisterClass(&wndcls);
//创建窗口,定义一个变量用来保存成功创建窗口后返回的句柄
HWND hwnd;
hwnd=CreateWindow("sunxin2006","http://www.sunxin.org",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
//显示及刷新窗口
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
//定义消息结构体,开始消息循环
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
//编写窗口过程函数
LRESULT CALLBACK WinSunProc( HWND hwnd, //handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam ) //second message parameter
{
switch(uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"char code is %d",wParam);
MessageBox(hwnd,szChar,"char",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"程序员之家",strlen("程序员之家"));
//ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hdc,0,0,"http://sunxin.org",strlen("http://sunxin.org"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
MessageBox(HWND hWnd, LPCTSTRlpText, LPCTSTR lpCaption, UINTuType);
Parameters
- hWnd
- [in] Handle to the owner window of the message box to be created. If this parameter is NULL, the message box has no owner window.
- lpText
- [in] Long pointer to a null-terminated string that contains the message to be displayed.
- lpCaption
- [in] Long pointer to a null-terminated string used for the dialog box title. If this parameter is NULL, the default title “Error” is used.
- uType
- [in] Specifies a set of bit flags that determine the contents and behavior of the dialog box. This parameter can be a combination of flags from the following groups of flags.
Specify one of the following flags to indicate the buttons contained in the message box:
Value Description MB_ABORTRETRYIGNOREThe message box contains three push buttons: Abort,Retry, and Ignore.MB_OKThe message box contains one push button: OK. This is the default.MB_OKCANCELThe message box contains two push buttons: OK andCancel.MB_RETRYCANCELThe message box contains two push buttons: Retry andCancel.MB_YESNOThe message box contains two push buttons: Yes andNo.MB_YESNOCANCELThe message box contains three push buttons: Yes, No, andCancel.
return type:
Zero indicates that there is not enough memory to create the message box.
Upon success, one of the values described in the following table is returned.
DefWindowProc这个函数是默认的窗口处理函数,我们可以把不关心的消息都丢给它来处理。这个函数在处理关闭窗口消息WM_CLOSE时,是调用DestroyWindow函数关闭窗口并且发WM_DESTROY消息给应用程序;而它对WM_DESTROY这个消息是不处理的;我们在应用程序中对这个消息的处理是发出WM_QUIT消息。因此WM_CLOSE、WM_DESTROY、WM_QUIT这三个消息是先后产生的。
- windows程序
- windows程序
- windows 平台 CONSOLE程序还是Windows程序
- 实现Windows关机程序
- Windows服务程序
- Windows服务程序
- 制作windows服务程序
- windows 程序调试 读书笔记
- Windows注册表检查程序
- Java调用windows程序
- drwtsn32 调试windows程序
- Windows程序内部运行机制
- WINDOWS启动程序揭密
- Windows批量改名程序
- 《Windows程序调试》电子版
- 程序用windows快捷键
- 第一个Windows程序.
- 制作windows服务程序
- Qt 无法启动此程序 计算机丢失Qt5Widgetsd.dll....
- 移动医疗
- 母版页
- mysql免安装版配置(检查电脑服务列表里面有没有mysql服务,确认没有)
- C# 调用外部程序Process类
- windows程序
- 为 Linux 应用程序编写 DLL
- MySQL Server 启动时的 bug
- JSF生命周期监听器
- 用手机修改单片机时钟(1602显示)
- NFC应用(二)读写器模式
- JAVA对Oracle中BLOB、CLOB类型字段的操作说明
- Struts1
- Struts的Action访问spring的ApplicationContext的问题