1、定义字符串
在资源新建String table,增加新字符串;
(win32加载)
TCHAR tcIDName[255]=_T("");
LoadString(hInstance,IDS_NAME,tcIDName,255);
2、窗口居中
在WM_CREATE消息中增加如下代码:
int scrWidth,scrHeight; RECT rect; //获得屏幕尺寸 scrWidth = GetSystemMetrics(SM_CXSCREEN); scrHeight = GetSystemMetrics(SM_CYSCREEN); //取得窗口尺寸 GetWindowRect(hwnd,&rect); //重新设置rect里的值 rect.left = (scrWidth-rect.right)/2; rect.top = (scrHeight-rect.bottom)/2; //移动窗口到指定的位置 SetWindowPos(hwnd,HWND_TOP,rect.left,rect.top,rect.right,rect.bottom,SWP_SHOWWINDOW);
3、TChar字符串格式化
TCHAR tcText[255] = _T("");
_stprintf(tcText,_T("数字为%d"),1111);
4、键盘字符捕捉
case WM_KEYDOWN: switch (wParam) { case VK_CONTROL:break; } break;
注意:如果点击按钮之后,或者其他控件,焦点就会被夺走,此时则需要通过SetFocus函数重新设置该窗口焦点。
5、创建按钮步骤(创建控件的方法)
(1)、定义资源ID,#define ID_BUTTON_CLOSE 100001
(2)、在WM_COMMAND消息中,添加以下代码:
HWND hButton = CreateWindow(_T("button"),
_T("退出"),//按钮上显示的字符
WS_CHILD | WS_VISIBLE,
50,100,70,30, //按钮在界面上出现的位置
hwnd,(HMENU)ID_BUTTON_CLOSE, //设置按钮IDIDC_BUTTON_CONTINUE = 131自己定义ID
((LPCREATESTRUCT)lParam)->hInstance,NULL);
(3)、在WM_CREATE消息中处理对子控件的点击处理
WORD wID = LOWORD(wParam);
WORD wEvent = HIWORD(wParam);
switch(wID)
{
case ID_BUTTON_CLOSE:
PostQuitMessage(0);
break;
}
6、加载资源图标
LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON_APP));
7、绘制矩形并填充颜色
HBRUSH hbrush = CreateSolidBrush (RGB());
HBRUSH oldhBrush = (HBRUSH)SelectObject(hdc,hbrush);
Rectangle(hdc,lx,ty,rx,by);
SelectObject(hdc,oldhBrush);
DeleteObject(hbrush);
8、设置static文本背景颜色
case WM_CTLCOLORSTATIC: { if ((HWND)lParam == GetDlgItem(hwnd,ID_TEXT_SORCE))//获得指定标签句柄用来对比 { SetTextColor((HDC)wParam,RGB(255,0,0));//设置文本颜色 SetBkMode((HDC)wParam,TRANSPARENT);//设置背景透明 } return (INT_PTR)GetStockObject((NULL_BRUSH));//返回一个空画刷(必须) } break;
9、设置win32窗口一直在最上面
SetWindowPos函数第二个参数设置为HWND_TOPMOST;
10、获得透明画刷
HBRUSH hBrush = (HBRUSH)GetStockObject(NULL_BRUSH);
其返回的是一个标识,所以不需要delete或者release。
11、在win32中使用GDI+
1、头文件中加入以下内容,宏可以改变
#ifndef AFXSTD_H #define AFXSTD_H #include <comdef.h> #include <Windows.h> // must be inluded before gdiplus.h, otherwise compile error #include <gdiplus.h> #pragma comment(lib, "gdiplus.lib") #endif
2、定义变量 ULONG_PTR m_gdiplusToken;
3、初始化
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
4、使用(根据具体情况而定)
PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd,&ps); Gdiplus::Graphics graphics(hdc); Gdiplus::Pen myPen(Gdiplus::Color(255,255,0,0),50); graphics.DrawEllipse(&myPen,30,30,50,50); graphics.DrawLine(&myPen, 0, 50, 400, 150); EndPaint(hwnd,&ps);
5、释放GDI+ Gdiplus::GdiplusShutdown(m_gdiplusToken);