第一个WINAPI WinMain程序

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //窗口过程

//窗口初始化(定义窗口的具体方式)
int WINAPI WinMain
(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
//int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevlnst, LPSTR lpsCmdLine, int nCmdShow)
{
	HWND hwnd;
	MSG Msg;
	WNDCLASS wndclass;
	char lpszClassName[] = "窗口";  //窗口类名
	char lpszTitle[] = "My_Windows";  //窗口标题名
	wndclass.style = 0;				//窗口风格
	wndclass.hInstance = hInstance;
	wndclass.lpfnWndProc = WndProc;	//窗口过程函数地址
	wndclass.cbClsExtra = 0;  //窗口类无扩展
	wndclass.cbWndExtra = 0; //窗口实例无扩展
	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);  //用箭头光标
	wndclass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));  //窗口背景色为白色
	wndclass.lpszMenuName = NULL;  //窗口无菜单
	wndclass.lpszClassName = lpszClassName; //窗口类名为"窗口"
	if(!RegisterClass(&wndclass))  //如果注册窗口类失败
	{ MessageBeep(0); return FALSE; }
	hwnd = CreateWindow(
		lpszClassName,		 //窗口类名
		lpszTitle,			 //窗口实例的标题名
		WS_OVERLAPPEDWINDOW, //窗口的风格
		CW_USEDEFAULT,
		CW_USEDEFAULT,		 //以上2行表示窗口左上角坐标为默认值
		CW_USEDEFAULT,
		CW_USEDEFAULT,		 //以上2行表示窗口的高度和宽度为默认值
		NULL,				 //此窗口无父窗口
		NULL,				 //此窗口无主菜单
		hInstance,			 //创建此窗口的应用程序的当前句柄(即进程)
		NULL				 //不使用该值
		);
	ShowWindow(hwnd, nCmdShow); //显示窗口
	UpdateWindow(hwnd);			//绘制用户区(刷新用户区)
	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_DESTROY:
		PostQuitMessage(0);
	default:
		return DefWindowProc(hwnd, message, wParam, lParam);
	}
	return 0;
}

最简单的winmain程序 #include #include LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { HDC hdc; switch(uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,"char is %d",wParam); MessageBox(hwnd,szChar,"weixin",0); break; case WM_LBUTTONDOWN: MessageBox(hwnd,"mouse clicked","weixin",0); hdc=GetDC(hwnd); TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训")); ReleaseDC(hwnd,hdc); break; case WM_PAINT: PAINTSTRUCT ps; hdc=BeginPaint(hwnd,&ps); TextOut(hdc,0,0,"维新培训",strlen("维新培训")); EndPaint(hwnd,&ps); break; case WM_CLOSE: if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO)) DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; } 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="Weixin2003"; wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndcls); HWND hwnd=CreateWindow("Weixin2003","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL); DWORD dwStyle=GetWindowLong(hwnd, GWL_STYLE); dwStyle&=~(WS_SIZEBOX|WS_MAXIMIZEBOX|WS_MINIMIZEBOX); SetWindowLong(hwnd, GWL_STYLE, dwStyle); ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); MSG msg; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值