Win32 CreateWindow GdiPlus
#include "stdafx.h"
#include "TestGidPlus.h" LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
// Initialize GDI+.
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); WNDCLASSEX wcApp;
wcApp.lpszClassName = TEXT("Test_Window");
wcApp.cbSize = sizeof(wcApp);
wcApp.style = CS_HREDRAW | CS_VREDRAW;
wcApp.hInstance = hInstance;
wcApp.cbWndExtra = 0;
wcApp.cbClsExtra = 0;
wcApp.hCursor = LoadCursor(NULL,IDC_ARROW);
wcApp.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wcApp.lpfnWndProc = WndProc;
wcApp.hCursor = LoadCursor(NULL,IDC_ARROW);
wcApp.hbrBackground = (HBRUSH)(COLOR_WINDOW);
wcApp.lpszMenuName = NULL;
wcApp.hIconSm = NULL;
RegisterClassExW(&wcApp); HWND hwnd = CreateWindowExW (NULL, TEXT("Test_Window"), TEXT(""), WS_OVERLAPPEDWINDOW, 100, 100, 600, 400, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd,SW_NORMAL);
UpdateWindow(hwnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
GdiplusShutdown(gdiplusToken);
return msg.lParam;
} LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT b;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_CREATE:
//SendMessage(hwnd,WM_PAINT,0,0);
break;
case WM_PAINT:
{
///////////////////Gdiplus与Gdi混合实现双缓冲////////////////////
//HDC hMemDC = CreateCompatibleDC(m_hDC);
//HBITMAP hMemBitmap = CreateCompatibleBitmap(m_hDC, DEFAULT_STATUS_WIDTH, DEFAULT_STATUS_HEIGHT);
//SelectObject(hMemDC, hMemBitmap);
//Graphics *memGraphics = new Graphics(hMemDC);
//Pen pen(Color(192, 192, 192));
//SolidBrush brush(Color(255, 255, 255));
//memGraphics->FillRectangle(&brush, xPos, yPos, DEFAULT_STATUS_WIDTH, DEFAULT_STATUS_HEIGHT);
//memGraphics->DrawRectangle(&pen, xPos, yPos, DEFAULT_STATUS_WIDTH, DEFAULT_STATUS_HEIGHT);
//for (int i = 0; i < SMALL_IMAGE_COUNT; i++)
//{
// DrawImageFromId(memGraphics, imgID[i], imgXPos[i], imgYPos[i]);
//}
//DeleteObject(hMemBitmap);
//BitBlt(m_hDC, xPos, yPos, DEFAULT_STATUS_WIDTH, DEFAULT_STATUS_HEIGHT, hMemDC, 0, 0, SRCCOPY);
//DeleteDC(hMemDC);
//delete memGraphics; hdc = BeginPaint(hwnd, &ps);
Graphics graphics(hdc);
Pen pen(Color(255, 0, 0));
graphics.DrawLine(&pen, 0, 0, 0, 500);
EndPaint(hwnd, &ps);
break;
}
case WM_NCHITTEST:
{
POINT pt;
pt.x = GET_X_LPARAM(lParam);
pt.y = GET_Y_LPARAM(lParam); RECT rcClient;
GetClientRect(hwnd, &rcClient); b = DefWindowProc(hwnd,message,wParam,lParam);
switch(b)
{
case HTCLIENT:
SetWindowText(hwnd,TEXT("点击的是客户区"));
return b;
case HTCAPTION:
SetWindowText(hwnd,TEXT("点击的是标题栏"));
return b;
case HTBOTTOM:
SetWindowText(hwnd,TEXT("点击的是下边框"));
return b;
case HTBOTTOMLEFT:
SetWindowText(hwnd,TEXT("点击的是左下边框"));
return b;
return b;
case HTCLOSE:
SetWindowText(hwnd,TEXT("点击的是关闭按钮"));
return b;
case HTLEFT:
SetWindowText(hwnd,TEXT("点击的是左边框"));
return b;
case HTMAXBUTTON:
SetWindowText(hwnd,TEXT("点击的是最大化按钮"));
return b;
case HTMINBUTTON:
SetWindowText(hwnd,TEXT("点击的是最小化按钮"));
return b;
case HTRIGHT:
SetWindowText(hwnd,TEXT("点击的是右边框"));
return b;
case HTSYSMENU:
SetWindowText(hwnd,TEXT("点击的是系统菜单"));
return b;
case HTTOP:
SetWindowText(hwnd,TEXT("点击的是上边框"));
return b;
case HTBOTTOMRIGHT:
SetWindowText(hwnd,TEXT("点击的是右下边框"));
return b;
case HTTOPRIGHT:
SetWindowText(hwnd,TEXT("点击的是右上边框"));
return b;
case HTTOPLEFT:
SetWindowText(hwnd,TEXT("点击的是左上边框"));
return b;
default:
return b;
}
}
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
Win32 CreateWindow GdiPlus的更多相关文章
- win32窗口机制之CreateWindow
CreateWindow 函数功能:该函数创建一个重叠式窗口.弹出式窗口或子窗口.它指定窗口类,窗口标题,窗口 风格,以及窗口的初始位置及大小(可选的).该函数也指定该窗口的父窗口或所属窗 ...
- win32自绘按钮,使用GDI+(一)
第一次写随笔,我本来想将win32窗口的标题栏设置成渐变色,像这样的效果 但发现找不到设置标题栏属性的api,SetWindowLong也只是增减窗口的固定的样式而已.所以想到一个思路,把标题栏去掉, ...
- Win32基础知识整理
1.定义字符串 在资源新建String table,增加新字符串: (win32加载) TCHAR tcIDName[255]=_T(""); LoadString(hInstan ...
- 2013 duilib入门简明教程 -- 结合win32和MFC (16)
虽然duilib自带在MFC中使用duilib的Demo,但只是MFC窗口和duilib窗口不重叠的情况.如果要在MFC窗口中嵌入duilib控件,或者在duilib控件中嵌入MFC的控件的话 ...
- win32记事本程序(一)
我不会取标题,大体上我想用win32,模仿windows的记事本,写个记事本程序,最后让我的程序和微软的程序在外观和功能上都差不多.这样一来我可以学到一些新知识,巩固旧的知识. 一.首先做个菜单栏吧. ...
- win32自绘按钮,使用GDI+(三)
解决前面的问题.实现鼠标移动进入到按钮的特效. 效果是这样的 鼠标移到按钮上,改变按钮的颜色(这里用的是直接换贴在按钮上的图片) 程序运行 鼠标进入按钮 代码 #ifndef ULONG_PTR // ...
- Microsoft Win32 to Microsoft .NET Framework API Map
Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles ...
- 1、win32创建窗口函数(windows程序内部运行机制)
利用win32创建窗口函数,主要操作步骤为: 1.设计一个窗口类 2.注册窗口类 3.创建窗口 4.显示及窗口更新 5.消息循环 6.窗口过程函数 (1)设计一个窗口类 设计窗口类,这样的类型已经 ...
- Win32 RGB三原色
以前看到三原色的图案,一直很好奇是如何画出来.后来终于搞清楚了,其实很简单,实际上就是RGB三个分量的"位与"运算. 下面给出Win32绘制三原色图案的例子,特此记录在此: #in ...
随机推荐
- HW5.22
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- 北京Uber优步司机奖励政策(2月3日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 怎样做出通用的pos小票打印程序
POS小票打印机分为热敏和针式俩种. 打印纸的宽度分为58毫米.76毫米和80毫米三种. 打印接口分为:串口.并口.USB和网口(以太网). 热敏打印机速度较快,打印的时候噪音少,针打可以使用多联纸自 ...
- 前景还是“钱景”——MM应用引擎的自我博弈
纵观当前的移动互联网发展态势,巨大的商机已经展露无遗,各个领域的企业及个人对于APP的开发如火如荼,许多APP从诞生伊始,就面临着软件开发的专业性,商业模式的模糊性,以及市场推广的艰巨性三个巨大难题, ...
- oc学习之路----代理模式2-使用步骤
之前已经写过一个个人关于代理模式的一些看法,现在就来总结一下使用代理模式的步骤吧. 1.先搞清楚谁是谁的代理(delegate) ● 2.定义代理协议,协议名称的命名规范:控件类名 + Delegat ...
- JS自定义事件(Dom3级事件下)
原文出处: http://www.w3cfuns.com/notes/11861/e21736a0b15bceca0dc7f76d77c2fb5a.html . 我拿出作者中的一段,感谢作者原创. ...
- 安装64位ubuntu 14.04-搭建android开发环境
end
- C# - 系统类 - String类
String类 ns:System String类封装了一系列不能被改变的Unicode字符序列 字符属于引用类型 但它又具有值类型的行为 固定不变意味着 一旦在托管堆中分配了一块内存来存储字符 字符 ...
- svn出错错误
RA layer request failed ---------------------------- 解决方案:重启visulsvnserver 若重启不了 出现Service 'VisualSV ...
- android自定义控件实现刮刮乐效果
只是简单的实现了效果,界面没怎么做优化,不过那都是次要的啦!! 其中主要的彩票视图类和橡皮擦类都是通过代码的方式构建视图,布局文件就一个主activity_main 上代码!! 主activity ...