#include <windows.h>
#include<stdio.h>
// 窗口函数的函数原形
LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
char szClassName[] = "MainWClass";
WNDCLASSEX wndclass; // 用描述主窗口的参数填充WNDCLASSEX结构
wndclass.cbSize = sizeof(wndclass); // 结构的大小
wndclass.style = CS_HREDRAW|CS_VREDRAW; // 指定如果大小改变就重画
wndclass.lpfnWndProc = MainWndProc; // 窗口函数指针
wndclass.cbClsExtra = ; // 没有额外的类内存
wndclass.cbWndExtra = ; // 没有额外的窗口内存
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 = szClassName ; // 窗口类的名称
wndclass.hIconSm = NULL; // 没有类的小图标 // 注册这个窗口类
::RegisterClassEx(&wndclass); // 创建主窗口
HWND hwnd = ::CreateWindowEx(
, // dwExStyle,扩展样式
szClassName, // lpClassName,类名
"My first Window!", // lpWindowName,标题
WS_OVERLAPPEDWINDOW, // dwStyle,窗口风格
CW_USEDEFAULT, // X,初始 X 坐标
CW_USEDEFAULT, // Y,初始 Y 坐标
, // nWidth,宽度
, // nHeight,高度
NULL, // hWndParent,父窗口句柄
NULL, // hMenu,菜单句柄
hInstance, // hlnstance,程序实例句柄
NULL) ; // lpParam,用户数据 if(hwnd == NULL)
{
::MessageBox(NULL, "创建窗口出错!", "error", MB_OK);
return -;
} // 显示窗口,刷新窗口客户区
::ShowWindow(hwnd, nCmdShow);
::UpdateWindow(hwnd); // 从消息堆中取出消息
MSG msg;
while(::GetMessage(&msg, NULL, , ))
{
// 转化键盘消息
::TranslateMessage(&msg);
// 将消息发送到相应的窗口函数
::DispatchMessage(&msg);
} // 当GetMessage返回0时程序结束
return msg.wParam;
} LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{ char szText[] = "最简单的窗口程序!";
switch (message)
{
case WM_PAINT: // 窗口客户区需要重画
{
HDC hdc;
PAINTSTRUCT ps; // 使无效的客户区变的有效,并取得设备环境句柄
hdc = ::BeginPaint (hwnd, &ps) ;
// 显示文字
::TextOut(hdc, , , szText, strlen(szText));
::EndPaint(hwnd, &ps);
return ;
}
case WM_CREATE:
HDC hdc ;
HFONT hFont;
int arr[];
FILE * pFile;
fopen_s (&pFile,"file.txt","w+");
hdc = GetDC(hwnd);
hFont = CreateFont(-, ,,, FW_BOLD, false, false, false,
DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH,"Arial");
SelectObject(hdc, hFont);
GetCharWidth32(hdc,,,arr);
for(int i=;i<;i++)
fprintf(pFile,"%c-->%d\n",' '+i,arr[i]);
fclose(pFile);
return ;
case WM_DESTROY: // 正在销毁窗口 // 向消息队列投递一个WM_QUIT消息,促使GetMessage函数返回0,结束消息循环
::PostQuitMessage() ;
return ;
} // 将我们不处理的消息交给系统做默认处理
return ::DefWindowProc(hwnd, message, wParam, lParam);
}

GetCharWidth32的更多相关文章

  1. 利用GetCharWidth32获取字符串宽度2

    /////////////////////////////////////////////////////////////// // 04FirstWindow.cpp文件 #include < ...

  2. 利用GetCharWidth32获取字符串宽度

    /////////////////////////////////////////////////////////////// // 04FirstWindow.cpp文件 #include < ...

  3. Microsoft Win32 to Microsoft .NET Framework API Map

    Microsoft Win32 to Microsoft .NET Framework API Map .NET Development (General) Technical Articles   ...

  4. opengl入门学习

    OpenGL入门学习 说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640 ...

  5. 英文不好也能快速"记忆" API

    英文不好不要紧,把API函数导入打字练习类软件,即是练习打字速度,提高编程效率:也能短时间记忆API. 坚持每天打一遍,约2小时,连续打两周,会对API有很好的记忆,此方法是结合英文学习方法!以下是W ...

  6. OpenGL入门学习(转)

    OpenGL入门学习 http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html 说起编程作图,大概还有很多人想起TC的#includ ...

  7. DELPHI下API简述(1800个API)

    DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属 ...

  8. (转载博文)VC++API速查

    窗口处理 2.1 窗口简介 2.2.1 创建普通窗口(CreateWindow.CreateWindowEx) 2.2.2 关闭窗口(CloseWindow) 2.2.3 销毁窗口(DestroyWi ...

  9. OpenGL------在Windows系统中显示文字

    增加了两个文件,showline.c, showtext.c.分别为第二个和第三个示例程序的main函数相关部分.在ctbuf.h和textarea.h最开头部分增加了一句#include <s ...

随机推荐

  1. Selenium2Library:Get Matching Xpath Count用法

    Name:Get Matching Xpath CountSource:Selenium2Library <test library>Arguments:[ xpath ]Returns ...

  2. [ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: URLError: <urlopen error [Errno 10061] Connection refused>

    [ WARN ] Keyword 'Capture Page Screenshot' could not be run on failure: URLError: <urlopen error ...

  3. 面向对象第二个特征-继承(Inheritance)

    面向对象第二个特征-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java中的继承概述 1>.继承概述 多个类种存在相同属性和行为时,讲这 ...

  4. CCCC L2-004. 这是二叉搜索树吗?

    题意: 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值: 其右子树中所有结点的键值大于等于该结点的键值: 其左右子树都是二叉搜索树. 所谓 ...

  5. POJ2002 &&HDU5365 判断给定的点中有多少个不同的正方形

    Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 17740   Accepted: 6776 Descript ...

  6. POJ 3368:Frequent values

    Frequent values Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14764   Accepted: 5361 ...

  7. PHP的操作符与控制结构

    一.操作符  操作符是用来对数组和变量进行某种操作运算的符号. 算术操作符 操作符 名称 示例 + 加 $a+$b - 减 $a-$b * 乘 $a*$b / 除 $a/$b % 取余 $a%$b 复 ...

  8. UltraISO制作manjaro系统盘,使用优盘

    下载系统镜像 默认是清华镜像 刻入方式一定要选RAW方式

  9. 005、mysql查询表的结构

    EXPLAIN hcc_ip 如果有一个表,表明为hcc_ip,使用以上语句可以得到下图 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:38247724 ...

  10. 标准JAVA工程结构