记录我的Windows编程(一)创建窗口

编译器:VS2010先创建一个窗口,几大元素:

//1.设计一个窗口类

//2.注册窗口类

//3.创建窗口

//4.显示及更新窗口

//5.消息循环

//6消息处理函数

#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>

//1.设计一个窗口类
//2.注册窗口类
//3.创建窗口
//4.显示及更新窗口
//5.消息循环
//6.窗口函数

#define ID_TIMER 1

static TCHAR szWindowClass[] = _T("win32app");
static TCHAR szTitle[] = _T("测试程序");
HINSTANCE hInst;
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

//设计一个窗口类
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
	WNDCLASSEX wcex;

	wcex.cbSize = sizeof(WNDCLASSEX);
	wcex.style          = CS_HREDRAW | CS_VREDRAW;
	wcex.lpfnWndProc    = WndProc;
	wcex.cbClsExtra     = 0;
	wcex.cbWndExtra     = 0;
	wcex.hInstance      = hInstance;
	wcex.hIcon          = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
	wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
	wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
	wcex.lpszMenuName   = NULL;
	wcex.lpszClassName  = szWindowClass;
	wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

	hInst=hInstance;//hinstance赋值全局变量

//注册窗口类
	if (!RegisterClassEx(&wcex))
	{
		MessageBox(NULL,_T("Call to RegisterClassEx failed!"),_T("Win32 Guided Tour"),NULL);
		return 1;
	}

//创建窗口
	HWND hWnd = CreateWindow(szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,1024, 768,NULL,NULL,hInstance,NULL);

//显示及更新窗口
	ShowWindow(hWnd,nCmdShow);
	UpdateWindow(hWnd);

//消息循环
	MSG msg;
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return (int) msg.wParam;
}
//消息处理函数
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message)
	{

	case WM_PAINT:
	
		hdc = BeginPaint(hWnd, &ps);
		
		EndPaint(hWnd, &ps);
		break;

	case WM_DESTROY:

		PostQuitMessage(0);
		break;

	default:
	
		return DefWindowProc(hWnd, message, wParam, lParam);
		break;
	}

	return 0;
}


窗口到这里就建立完成,可以添加东西了。(重要)关于char要理解一下:

char 适合ASCii的编程,使用strcpy()这样的函数。

wchar_t 适合UNICODE的编程,使用wcscpy()这样的函数。

tchar 综合以上编码,会自动选择,使用_tcscpy()这样的函数。

这里编程完全使用tchar类型。

关于转换,经常会遇到直接插入字符串"1.txt",这时,使用_T("1.txt")或TEXT("1.txt")即可。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值