(复习)windows sdk 画一个四边形、设置虚线边框、背景模式、以及填充
2016-12-09 23:36
309 查看
#include <windows.h> /********************* Rectangle 画一个四边形,设置背景,设置边框为虚线,设置虚线间隙背景 邱于涵 2016年12月9日23:33:42 ****************/ LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("MyWindows"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; if (!RegisterClass(&wndclass)) { MessageBox(NULL, TEXT("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindow(szAppName, TEXT("涵涵工作室"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, iCmdShow); 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) { HDC hdc; PAINTSTRUCT ps; RECT rect; POINT apt1[4] = { 100, 100, 200, 100, 200, 200, 100, 200 }; //设置五个 手动连回去 POINT apt2[5] = { 300, 100, 400, 100, 400, 200, 300, 200, 300, 100 }; HBRUSH cBrush, pBrush; HPEN cPen, pPen; switch (message) { case WM_PAINT: hdc = BeginPaint(hwnd, &ps); cBrush = CreateSolidBrush(RGB(0, 255, 0));//创建画刷 pBrush = SelectObject(hdc, cBrush); //选择 cPen = CreatePen(PS_DASH, 0, RGB(0, 0, 255));//设置绿色虚线 SetBkMode(hdc, OPAQUE);//设置背景模式为不透明模式 SetBkColor(hdc, RGB(255, 0, 0)); //设置背景(虚线间隙背景)为红色 pPen = SelectObject(hdc,cPen); Rectangle(hdc, 100, 100, 400, 400); SelectObject(hdc, pBrush);//选回去(养成好习惯) DeleteObject(cBrush); //删除 SelectObject(hdc, pPen); DeleteObject(cPen); EndPaint(hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }
相关文章推荐
- 关于imageview 不让背景图片自动拉伸填充 imageview 以及布局参数的设置的小结(自己试验的可能不怎么准确)
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- 去掉button按钮左右两边的留白 设置按钮背景为透明 去掉鼠标点击时出现的虚线边框 层的显示与隐藏
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- POI操作Excel表格系列3 --- 背景颜色、边框等属性的读取和设置以及数据有效性的添加
- QT模态对话框用法(在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片——酷)
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- 自定义Dialog,去除系统默认黑色背景以及边框并设置dialog的显示位置
- img元素设置背景图以及边框
- SQLSERVER2005的混和身份验证模式的设置以及SA登陆问题
- SQLSERVER2005的混和身份验证模式的设置以及SA登陆问题
- WinAPI: SetBkMode - 设置背景模式
- NAPI模式--中断和轮询的折中以及一个负载均衡的问题
- 【转帖】如何从内核模式设备驱动程序中打开一个文件以及如何读取或写入文件
- Flex中如何通过backgroundImage, backgroundColor和backgroundAlpha样式,设置VBox的背景图片和背景颜色以及改变透明度
- 在Eclipse RCP 设置表格的行高、背景颜色以及字体等等
- Flex中通过设置fillColors样式改变ComboBox控件的填充背景颜色的例子
- SQLSERVER2005的混和身份验证模式的设置以及SA登陆问题
- Flex中如何通过backgroundImage和backgroundSize样式,设置VBox容器的背景图片以及大小
- 一个可设置背景图片的验证码图片的生成方法