q229817426@163.com

q229817426@163.com45
posts - 9, comments - 1, trackbacks - 0, articles - 0

WINDOWN设计

Posted on 2007-10-17 20:59 link 阅读(293) 评论(0)  编辑 收藏 引用 所属分类: c++编程
1.wchar_t数据型态与无符号短整数型态相同,都是16位宽,相当与char的用法,wchar_t c = 'A' ;
2.wcslen 和strlen用法相当
3.#ifdef  UNICODE
typedef WCHAR TCHAR, * PTCHAR ;
typedef LPWSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCWSTR LPCTSTR ;     
#else
typedef char TCHAR, * PTCHAR ; 
typedef LPSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCSTR LPCTSTR ;  
#endif
4.Windows函数呼叫

int WINAPI MessageBox (HWND, LPCSTR, LPCSTR, UINT) ;
注意,函数的第二个、第三个参数是指向常数字符串的指针
5.Windows的字符串函数

ILength = lstrlen (pString) ;
       
pString = lstrcpy (pString1, pString2) ;
       
pString = lstrcpyn (pString1, pString2, iCount) ;
       
pString = lstrcat (pString1, pString2) ;
       
iComp = lstrcmp (pString1, pString2) ;
       
iComp = lstrcmpi (pString1, pString2) ;
6.在Windows中使用printf
char szBuffer [100] ;
       
sprintf (szBuffer, "The sum of %i and %i is %i", 5, 3, 5+3) ;
       
puts (szBuffer)

ASCII

宽字符

常规

参数的变数个数

标准版

sprintf

swprintf

_stprintf

最大长度版

_snprintf

_snwprintf

_sntprintf

Windows版

wsprintfA

wsprintfW

wsprintf

参数数组的指针

标准版

vsprintf

vswprintf

_vstprintf

最大长度版

_vsnprintf

_vsnwprintf

_vsntprintf

Windows版

wvsprintfA

wvsprintfW

wvsprintf


格式化消息框
程序2-1  SCRNSIZE
       
SCRNSIZE.C
       
/*---------------------------------------------------------------------------
       
    SCRNSIZE.C -- Displays screen size in a message box
       
                 (c) Charles Petzold, 1998
       
----------------------------------------------------------------------------*/
       
#include <windows.h>
       
#include <tchar.h>  
       
#include <stdio.h>  
       
int CDECL MessageBoxPrintf (TCHAR * szCaption, TCHAR * szFormat, ...)
       
{
       
    TCHAR   szBuffer [1024] ;
       
    va_list pArgList ;
       

    // The va_start macro (defined in STDARG.H) is usually equivalent to:
       
    // pArgList = (char *) &szFormat + sizeof (szFormat) ;
       

    va_start (pArgList, szFormat) ;
       

    // The last argument to wvsprintf points to the arguments
       

    _vsntprintf ( szBuffer, sizeof (szBuffer) / sizeof (TCHAR),
       
                   szFormat, pArgList) ;
       

    // The va_end macro just zeroes out pArgList for no good reason
       
    va_end (pArgList) ;
       
    return MessageBox (NULL, szBuffer, szCaption, 0) ;
       
}
       
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
       
                   PSTR szCmdLine, int iCmdShow)
       
{
       
    int cxScreen, cyScreen ;
       
    cxScreen = GetSystemMetrics (SM_CXSCREEN) ;
       
    cyScreen = GetSystemMetrics (SM_CYSCREEN) ;
       

    MessageBoxPrintf (    TEXT ("ScrnSize"),
       
                   TEXT ("The screen is %i pixels wide by %i pixels high."),
       
                   cxScreen, cyScreen) ;
       
    return 0 ;
       
}


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