Win32编程心得。一

来源:互联网 发布:数据开放平台架构 编辑:程序博客网 时间:2024/05/17 02:39

一。键盘输入
二。一般的输出
三。计时器使用

//***********************************************************
键盘输入

方法。一
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code)   ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)

 虚拟键编码vk_code表 vk_code与键盘种类无关
KEYDOWN(VK_UP)  LEFT RIGHT DOWN
VK_INSERT DELETE RETURN
VK_ESCAPE SHIFT CONTROL PAUSE SPACE
VK_PRIOR(Page Up) NEXT(Page Down) END HOME

VK_F1 ~ VK_F12

方法。二
case WM_CHAR:
 char ascii_code = wparam;//注意传递的是ASCII码
 unsigned int key_state = lparam;
 //......

方法。三
case WM_KEYDOWN://同样可以WM_KEYUP
 char virtual_code = (int)wparam;
 int key_state = (int)lparam;

 switch(virtual_code){
  case VK_RIGHT://......
 }
 

 

//***********************************************************
一般的输出
// set the color
SetTextColor(hdc,RGB(0,255,0));
SetBkColor(hdc,RGB(0,0,0));
SetBkMode(hdc,OPAQUE);

char buffer[60];
sprintf(buffer....   //include <stdio.h>
TextOut(hdc,0,0,buffer,strlen(buffer));


//***********************************************************
计时器使用

1. #define TIMER_ID1_SEC   1
2. case WM_CREATE: 
         SetTimer(hwnd, TIMER_ID1_SEC, 1000,NULL);

3. case WM_TIMER:
 switch(wparam)
           {
           case TIMER_ID1_SEC:
   //do something
   break;
  //...... 


【原型】DWORD GetTickCount(void);
返回从Windows启动后的毫秒数。  除以1000

time = hour*3600 + minute*60 + second

    int time = GetTickCount()/1000 ;
    int hour = time /3600 ;
    int minute = (time - hour*3600 )/60 ;
    int second = time % 60;


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