一些API函数--《windows程序设计》

   《window程序设计》果然是经典,相对于MFC来说SDK简直是返璞归真啊。继续摘录一些API函数和技巧:
  CheckRadioButton(hwnd,IDC_SERVER1,IDC_SERVER10, wServer);
  1、Selects (adds a check mark to) a given radio button in a group and clears (removes a check mark from) all other radio buttons in the group. 在IDC_SERVER1-IDC_SERVER10中选中wServer的ID,有点像分组。

  DialogBoxParam (hInst, TEXT ("Servers"), hwnd, ServerDlg, (LPARAM) szIPAddr);
  2、可以在WM_INITDIALOG的LPARAM传参数,建立模态对话框。ServerDlg为消息处理函数,szIPAddr为参数,在WM_INITDIALOG消息响应中处理LPARAM的值。

typedef char *  va_list;

#define _INTSIZEOF(n)   ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
#define va_start(ap,v)  ( ap = (va_list)&v + _INTSIZEOF(v) )
#define va_arg(ap,t)    ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define va_end(ap)      ( ap = (va_list)0 )
  3、va_list可变参数的结构,有点复杂慢慢看。
  一般的用法是这样(个人理解)
va_list args; //声明变量
va_start(args, fmt); //开始解析。args指向fmt后面的参数
TYPE var = va_arg(args, TYPE); //取下一个参数并返回。args指向下一个参数
va_end(args); //结束解析
http://hi.baidu.com/kang_liang/blog/item/168c9059a9a1ca2d2934f05f.html

  4、wsprintf和wvsprintf的区别,从它们的参数可以看出。
int wsprintf(
  LPTSTR lpOut,    
// output buffer
  LPCTSTR lpFmt,   // format-control string
                // optional arguments
);

int wvsprintf( LPTSTR lpOutput, // buffer for output
               LPCTSTR lpFormat, // format-control string
               va_list
// variable list of format-control arguments
               );

  wsprintf纯粹是格式化字符串,wvsprintf是以参数列表Va_list格式化字符串。

posted on 2009-10-20 22:36 gewala 阅读(456) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

设计模式 网络编程

网络

搜索

最新评论

阅读排行榜

评论排行榜