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 ...
随机推荐
- Drupal安装及使用问题解决列表
#1. 启动 Clean URL 修改Apache的配置文件(如httpd.conf),打开 LoadModule rewrite_module modules/mod_rewrite.so选项.然后 ...
- POJ1276 - Cash Machine(多重背包)
题目大意 给定一个容量为M的背包以及n种物品,每种物品有一个体积和数量,要求你用这些物品尽量的装满背包 题解 就是多重背包~~~~用二进制优化了一下,就是把每种物品的数量cnt拆成由几个数组成,1,2 ...
- 七行jquery代码实现图片渐变切换【兼容ie6+、 Chrome、 Firefox】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- TDD中的迭代
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:TDD中的迭代.
- Mac下安装cocos2d-x环境
安装后xcode之后,下载cocos2dx压缩包,解压 通过中断cd到cocos2dx文件夹内 输入下行命令 sudo ./install-templates-xcode.sh 执行成功后打开xcod ...
- 利用mongodb开发lbs应用实践【转】
近期作为突击队员,与同事一起突击构建了一个简单的lbs系统.当前比较主流的做法是使用mongodb,因为其已经封装了常用的lbs基本操作(如查找附近的人),功能非常强大,对于开发周期只有一周的项目,m ...
- iotop,pt-ioprofile : mysql IO负载高的来源定位
http://www.cnblogs.com/cenalulu/archive/2013/04/12/3016714.html 前言: 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(i ...
- mysql strace fsync,fdatasync
mysql> show create table y; +-------+------------------------------------------------------------ ...
- 关于Bufferedreader的功能扩写
package cn.hncu.pattern.decorator.v1; import java.io.FileReader;import java.io.IOException; public c ...
- Android(java)学习笔记209:采用get请求提交数据到服务器(qq登录案例)
1.GET请求: 组拼url的路径,把提交的数据拼装url的后面,提交给服务器. 缺点:(1)安全性(Android下提交数据组拼隐藏在代码中,不存在安全问题) (2)长度有限不能超过4K(h ...