Windows编程2-打印参数

原创 2011年01月17日 19:51:00

#include <windows.h>

#include "SYSTEM.h"

/*****************************************************

 Windows SDK编程之一  窗口示例程序

******************************************************/

 

/*Win32应用程序框架主要由"初始化窗口类","窗口注册类","窗口的创建"以"窗口消息函数"等组成*/

 

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);

 

/*

 WinMain函数是所有windows应用程序的入口,类似于C语言中的Main函数,其功能是完成一系列的定义和初始化工作,并产生消息循环。消息循环是整个程序运行的核心。WinMain函数实现以下功能。

 1. 注册窗口类,建立窗口及执行其它必要的初始化工作;

 2. 进入消息循环,根据从应用程序消息队列接受的消息,调用相应的处理过程

 3. 当消息循环检索到WM_QUIT消息时终止程序运行。

 

*/

 

/*

WinMain函数有三个基本的组成部份:函数说明、初始化和消息循环。

*/

int APIENTRY WinMain(  //WinMain函数说明

 

HINSTANCE hInstance, //程序当前实例句柄      

HINSTANCE hPrevInstance, //应用程序其它实例句柄

LPSTR lpCmdLine, //指向程序命令行参数的指针

int iCmdShow) //应用程序开始执行时窗口显示方式的整数值标识

 

{

/*

由于Window操作系统是多任务的操作系统,能进行多任务的管理,因此,windows应用程序可能被并行的多次执行,因而可能出现同一个程序的多个窗口同时存在的情况,Windows系统将应用程序每一次执行称为该应用程序的一个实例(Instance),并用一个实例句柄唯一的标识它。

 

*/

 

 

 static TCHAR szAppName[] = TEXT ("SysMets1") ;

 

    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 ("This program requires Windows NT!"),

 

         szAppName, MB_ICONERROR) ;

 

            return 0 ;

 

    }

 

    hwnd = CreateWindow( szAppName,      // window class name

 

                   TEXT ("The Hello Program"),   // window caption

 

                   WS_OVERLAPPEDWINDOW,  // window style

 

                   CW_USEDEFAULT,// initial x position

 

                   CW_USEDEFAULT,// initial y position

 

                   CW_USEDEFAULT,// initial x size

 

                   CW_USEDEFAULT,// initial y size

 

                   NULL,                 // parent window handle

 

               NULL,            // window menu handle

 

               hInstance,   // program instance handle

 

               NULL) ;      // creation parameters

 

 

 

    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)

{

  static int    cxChar, cxCaps, cyChar ;

 

    HDC                   hdc ;

 

    int                   i ;

 

    PAINTSTRUCT ps ;     

 

    TCHAR                szBuffer [10] ;

 

    TEXTMETRIC  tm ;

 

 

    switch (message)

 

    {

 

   case   WM_CREATE:

 

         hdc = GetDC (hwnd) ;

 

 

          GetTextMetrics (hdc, &tm) ;

 

          cxChar = tm.tmAveCharWidth ;

 

          cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2 ;

 

          cyChar = tm.tmHeight + tm.tmExternalLeading ;

 

 

          ReleaseDC (hwnd, hdc) ;

 

          return 0 ;

 

 

    case   WM_PAINT :

 

          hdc = BeginPaint (hwnd, &ps) ;

 

 

          for (i = 0 ; i < NUMLINES ; i++)

 

                  {

 

            TextOut       (hdc, 0, cyChar * i,                    

 

                         sysmetrics[i].szLabel,

 

                         lstrlen (sysmetrics[i].szLabel)) ;

 

 

            TextOut       (hdc, 22 * cxCaps, cyChar * i,    

 

                         sysmetrics[i].szDesc,

 

                         lstrlen (sysmetrics[i].szDesc)) ;

 

 

                   SetTextAlign (hdc, TA_RIGHT | TA_TOP) ;

 

        TextOut (hdc, 22 * cxCaps + 40 * cxChar, cyChar * i,   szBuffer,

 

    wsprintf (szBuffer, TEXT ("%5d"),

 

GetSystemMetrics (sysmetrics[i].Index))) ;

 

              SetTextAlign (hdc, TA_LEFT | TA_TOP) ;

 

         }

 

            EndPaint (hwnd, &ps) ;

 

            return 0 ;

 

    case   WM_DESTROY :

 

            PostQuitMessage (0) ;

 

    return 0 ;

 

    }

 

return ::DefWindowProc(hwnd,message,wParam,lParam);

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/*---------------------------------------------------------

 

SYSMETS.H -- System metrics display structure

 

-----------------------------------------------------------*/

 

#define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics [0]))

 

struct

 

{

 

    int    Index ;

 

    TCHAR *       szLabel ;

 

   TCHAR *       szDesc ;

 

}

 

sysmetrics [] =

 

{

 

  SM_CXSCREEN,    TEXT ("SM_CXSCREEN"),            

 

                  TEXT ("Screen width in pixels"),

 

    SM_CYSCREEN, TEXT ("SM_CYSCREEN"),            

 

                         TEXT ("Screen height in pixels"),

 

    SM_CXVSCROLL, TEXT ("SM_CXVSCROLL"),           

 

                          TEXT ("Vertical scroll width"),

 

    SM_CYHSCROLL,  TEXT ("SM_CYHSCROLL"),           

 

                          TEXT ("Horizontal scroll height"),

 

    SM_CYCAPTION, TEXT ("SM_CYCAPTION"),           

 

                             TEXT ("Caption bar height"),

 

    SM_CXBORDER, TEXT ("SM_CXBORDER"),            

 

                          TEXT ("Window border width"),

 

    SM_CYBORDER,  TEXT ("SM_CYBORDER"),            

 

                          TEXT ("Window border height"),

 

    SM_CXFIXEDFRAME,TEXT ("SM_CXFIXEDFRAME"),        

 

                          TEXT ("Dialog window frame width"),

 

    SM_CYFIXEDFRAME,TEXT ("SM_CYFIXEDFRAME"),        

 

                          TEXT ("Dialog window frame height"),

 

    SM_CYVTHUMB,  TEXT ("SM_CYVTHUMB"),            

 

                         TEXT ("Vertical scroll thumb height"),

 

    SM_CXHTHUMB,    TEXT ("SM_CXHTHUMB"),            

 

                             TEXT ("Horizontal scroll thumb width"),

 

    SM_CXICON,       TEXT ("SM_CXICON"),             

 

                          TEXT ("Icon width"),

 

    SM_CYICON,       TEXT ("SM_CYICON"),              

 

                        TEXT ("Icon height"),

 

    SM_CXCURSOR,  TEXT ("SM_CXCURSOR"),            

 

                          TEXT ("Cursor width"),

 

    SM_CYCURSOR,    TEXT ("SM_CYCURSOR"),           

 

                          TEXT ("Cursor height"),

 

    SM_CYMENU,       TEXT ("SM_CYMENU"),              

 

                          TEXT ("Menu bar height"),

 

    SM_CXFULLSCREEN,TEXT ("SM_CXFULLSCREEN"),        

 

                          TEXT ("Full screen client area width"),

 

    SM_CYFULLSCREEN,TEXT ("SM_CYFULLSCREEN"),        

 

                          TEXT ("Full screen client area height"),

 

    SM_CYKANJIWINDOW,TEXT ("SM_CYKANJIWINDOW"),       

 

                           TEXT ("Kanji window height"),

 

    SM_MOUSEPRESENT, TEXT ("SM_MOUSEPRESENT"),        

 

                           TEXT ("Mouse present flag"),

 

    SM_CYVSCROLL,TEXT ("SM_CYVSCROLL"),           

 

                           TEXT ("Vertical scroll arrow height"),

 

    SM_CXHSCROLL,TEXT ("SM_CXHSCROLL"),           

 

                          TEXT ("Horizontal scroll arrow width"),

 

    SM_DEBUG,         TEXT ("SM_DEBUG"),               

 

                           TEXT ("Debug version flag"),

 

    SM_SWAPBUTTON,TEXT ("SM_SWAPBUTTON"),          

 

                           TEXT ("Mouse buttons swapped flag"),

 

    SM_CXMIN,         TEXT ("SM_CXMIN"),               

 

                           TEXT ("Minimum window width"),

 

    SM_CYMIN,         TEXT ("SM_CYMIN"),               

 

                           TEXT ("Minimum window height"),

 

    SM_CXSIZE,        TEXT ("SM_CXSIZE"),              

 

                           TEXT ("Min/Max/Close button width"),

 

    SM_CYSIZE,       TEXT ("SM_CYSIZE"),             

 

                           TEXT ("Min/Max/Close button height"),

 

    SM_CXSIZEFRAME,TEXT ("SM_CXSIZEFRAME"),         

 

                           TEXT ("Window sizing frame width"),

 

    SM_CYSIZEFRAME,TEXT ("SM_CYSIZEFRAME"),         

 

                           TEXT ("Window sizing frame height"),

 

    SM_CXMINTRACK,TEXT ("SM_CXMINTRACK"),          

 

                           TEXT ("Minimum window tracking width"),

 

    SM_CYMINTRACK,TEXT ("SM_CYMINTRACK"),          

 

                           TEXT ("Minimum window tracking height"),

 

    SM_CXDOUBLECLK,TEXT ("SM_CXDOUBLECLK"),         

 

                           TEXT ("Double click x tolerance"),

 

    SM_CYDOUBLECLK,TEXT ("SM_CYDOUBLECLK"),         

 

                           TEXT ("Double click y tolerance"),

 

    SM_CXICONSPACING,TEXT ("SM_CXICONSPACING"),       

 

                           TEXT ("Horizontal icon spacing"),

 

    SM_CYICONSPACING,TEXT ("SM_CYICONSPACING"),       

 

                           TEXT ("Vertical icon spacing"),

 

    SM_MENUDROPALIGNMENT,TEXT ("SM_MENUDROPALIGNMENT"),   

 

                                  TEXT ("Left or right menu drop"),

 

    SM_PENWINDOWS,       TEXT ("SM_PENWINDOWS"),          

 

                                  TEXT ("Pen extensions installed"),

 

    SM_DBCSENABLED,       TEXT ("SM_DBCSENABLED"),         

 

                                  TEXT ("Double-Byte Char Set enabled"),

 

    SM_CMOUSEBUTTONS,        TEXT ("SM_CMOUSEBUTTONS"),       

 

                                 TEXT ("Number of mouse buttons"),

 

    SM_SECURE,               TEXT ("SM_SECURE"),              

 

                                  TEXT ("Security present flag"),

 

    SM_CXEDGE,               TEXT ("SM_CXEDGE"),              

 

                                  TEXT ("3-D border width"),

 

    SM_CYEDGE,               TEXT ("SM_CYEDGE"),              

 

                                  TEXT ("3-D border height"),

 

    SM_CXMINSPACING,         TEXT ("SM_CXMINSPACING"),        

 

                                  TEXT ("Minimized window spacing width"),

 

    SM_CYMINSPACING,         TEXT ("SM_CYMINSPACING"),        

 

                                  TEXT ("Minimized window spacing height"),

 

    SM_CXSMICON,         TEXT ("SM_CXSMICON"),            

 

                                  TEXT ("Small icon width"),

 

    SM_CYSMICON,        TEXT ("SM_CYSMICON"),            

 

                                  TEXT ("Small icon height"),

 

    SM_CYSMCAPTION,       TEXT ("SM_CYSMCAPTION"),         

 

                                  TEXT ("Small caption height"),

 

    SM_CXSMSIZE,         TEXT ("SM_CXSMSIZE"),            

 

                                 TEXT ("Small caption button width"),

 

    SM_CYSMSIZE,         TEXT ("SM_CYSMSIZE"),            

 

                                  TEXT ("Small caption button height"),

 

    SM_CXMENUSIZE,       TEXT ("SM_CXMENUSIZE"),          

 

                                  TEXT ("Menu bar button width"),

 

    SM_CYMENUSIZE,       TEXT ("SM_CYMENUSIZE"),          

 

                                TEXT ("Menu bar button height"),

 

    SM_ARRANGE,              TEXT ("SM_ARRANGE"),             

 

                                  TEXT ("How minimized windows arranged"),

 

    SM_CXMINIMIZED,      TEXT ("SM_CXMINIMIZED"),         

 

                                  TEXT ("Minimized window width"),

 

    SM_CYMINIMIZED,       TEXT ("SM_CYMINIMIZED"),         

 

                                  TEXT ("Minimized window height"),

 

    SM_CXMAXTRACK,       TEXT ("SM_CXMAXTRACK"),         

 

                                  TEXT ("Maximum draggable width"),

 

    SM_CYMAXTRACK,       TEXT ("SM_CYMAXTRACK"),          

 

                                 TEXT ("Maximum draggable height"),

 

    SM_CXMAXIMIZED,       TEXT ("SM_CXMAXIMIZED"),         

 

                                  TEXT ("Width of maximized window"),

 

    SM_CYMAXIMIZED,       TEXT ("SM_CYMAXIMIZED"),         

 

                                  TEXT ("Height of maximized window"),

 

    SM_NETWORK,          TEXT ("SM_NETWORK"),             

 

                                  TEXT ("Network present flag"),

 

    SM_CLEANBOOT,         TEXT ("SM_CLEANBOOT"),           

 

                                  TEXT ("How system was booted"),

 

    SM_CXDRAG,               TEXT ("SM_CXDRAG"),              

 

                                  TEXT ("Avoid drag x tolerance"),

 

    SM_CYDRAG,               TEXT ("SM_CYDRAG"),              

 

                                  TEXT ("Avoid drag y tolerance"),

 

    SM_SHOWSOUNDS,        TEXT ("SM_SHOWSOUNDS"),          

 

                                  TEXT ("Present sounds visually"),

 

    SM_CXMENUCHECK,       TEXT ("SM_CXMENUCHECK"),         

 

                                 TEXT ("Menu check-mark width"),

 

    SM_CYMENUCHECK,       TEXT ("SM_CYMENUCHECK"),         

 

                                 TEXT ("Menu check-mark height"),

 

    SM_SLOWMACHINE,       TEXT ("SM_SLOWMACHINE"),         

 

                                  TEXT ("Slow processor flag"),

 

    SM_MIDEASTENABLED,       TEXT ("SM_MIDEASTENABLED"),      

 

                                  TEXT ("Hebrew and Arabic enabled flag"),

 

    SM_MOUSEWHEELPRESENT,TEXT ("SM_MOUSEWHEELPRESENT"),   

 

                                  TEXT ("Mouse wheel present flag"),

 

    SM_XVIRTUALSCREEN,       TEXT ("SM_XVIRTUALSCREEN"),      

 

                                  TEXT ("Virtual screen x origin"),

 

    SM_YVIRTUALSCREEN,       TEXT ("SM_YVIRTUALSCREEN"),      

 

                                  TEXT ("Virtual screen y origin"),

 

    SM_CXVIRTUALSCREEN,      TEXT ("SM_CXVIRTUALSCREEN"),     

 

                                  TEXT ("Virtual screen width"),

 

    SM_CYVIRTUALSCREEN,      TEXT ("SM_CYVIRTUALSCREEN"),     

 

                                  TEXT ("Virtual screen height"),

 

    SM_CMONITORS,       TEXT ("SM_CMONITORS"),           

 

                                TEXT ("Number of monitors"),

 

    SM_SAMEDISPLAYFORMAT,TEXT ("SM_SAMEDISPLAYFORMAT"),   

 

                                  TEXT ("Same color format flag")

 

} ;

Windows编程常用参数查询手册

  • 2012年07月04日 07:55
  • 43KB
  • 下载

MFC学习笔记2 Windows编程基础--MessageBox

新建 Win32 Applicationwin32 最大支持4G内存空间 win16 最大支持64K内存空间输出对话框选择“一个简单的Win32程序” // test2.cpp : Defines...
  • xundh
  • xundh
  • 2017年11月22日 08:53
  • 76

好玩的Windows编程之"本地时间"(2)TextClock

//程序名:文本时钟/TextClock   //作者wisepragma   //主页:http://blog.csdn.net/wisepragma   //taskkill /im TextCl...

Windows编程知识要点总结2-内核对象

二 内核对象1 Windows的内核对象指的是由内核分配的一个内存空间,该空间仅可由内核访问。是一种数据结构,用于管理对象的各种信息。2 内核对象由系统创建,用户程序仅仅是维护(拥有)一个对其的引用。...

Windows编程(2)|Win32建立菜单

在Win32编程下建立菜单有两种,一种是直接加载资源里的菜单,另一种是动态创建   一.直接加载资源资源菜单,有两种方法,要包含头文件resource.h     在"资源文件"处右键"添加"中选择"...
  • bizhu12
  • bizhu12
  • 2011年08月05日 21:41
  • 6590

Windows编程-2-内核对象相关知识点总结

1:windows内核对象 Windows能都创建和处理的内核对象有:事件、文件、文件映射、I/O完成端口、作业、邮件槽、互斥量、管道、进程、线程、信号量、可等待计时器、线程池等;这些内核才是Wind...

从零开始,重新学习windows编程(2)--环境准备,不用IDE编写程序

既然是求甚解,那就要脱离掉IDE,保证每个字符都是经过思考产生出来的,其实我们脱离掉IDE环境,更能够了解到每一步的执行是怎么样的,IDE到底在你选择项目、创建项目的时候为了做了哪些事情,还有一个好处...

Windows编程(2)-Unicode简介之宽字符与C

1. 美国信息交换标准码(ASCII:American Standard Code for Information Interchange):用7位二进制数来表示26个小写字母、26个大写字母、10个...

Windows编程2 MFC

编译环境vs2010 在文章开始前,我有个疑惑,我新建了个控制台工程,并新建文件创建头文件和类 GlobalVariate.h class CTest { public: CTest(...

熬之滴水穿石:一切从windows编程开始(2)

2--cpu占用率 我重新启动了那个辅助程序,开始分析为什么它一启动中间件软件处理消息就不会丢包了。很快我就想到了答案,那个小小的应用程序最能影响的便是CPU的占用率。我打开了任务管理器,通常情况凭...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows编程2-打印参数
举报原因:
原因补充:

(最多只允许输入30个字)