當 Edit Control (Edit Text) 和 Static Control (Static Text) 要被繪圖的時候,
視窗就會接受到 WM_CTLCOLORSTATIC 的訊息,
當接收到此訊息後,可以利用 wParam 和 lParam 分別取得元件的 hDC 和 handle,
再透過 SetTextColor 和 SetBkColor 函式,並建立背景筆刷 hBRUSH,
即可更改顏色,詳細內容與範例請參考 MSDN。
2011年9月15日 星期四
Window Controls 和 .rc 檔
用 Visual Studio 在開發 win32 或 MFC 視窗程式的時候,
我們常常可以用拖拉的方式來建立許多元件 (Controls),
並由旁邊的屬性對話窗 (Properties Dialog),來更改一些屬性,
但並非所有屬性都會列於此,例如元件的長寬等等,
這時就必須透過程式或者 *.rc 資源檔來直接做修改。
而在 MSDN 裡有介紹了各種元件在 rc 檔的格式。
我們常常可以用拖拉的方式來建立許多元件 (Controls),
並由旁邊的屬性對話窗 (Properties Dialog),來更改一些屬性,
但並非所有屬性都會列於此,例如元件的長寬等等,
這時就必須透過程式或者 *.rc 資源檔來直接做修改。
而在 MSDN 裡有介紹了各種元件在 rc 檔的格式。
2011年9月13日 星期二
[VC] 用 dumpbin 來看 DLL 檔
在 Visual Studio 裡提供了 dumpbin 工具,可以用來查看
DLL 檔提供了哪些函式,dumpbin.exe 的位置於 :
C:\Program Files\Microsoft Visual Studio 8\VC\bin
如果執行時出現找不到 mspdb80.dll 時,
將 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
加到系統環境變數的 Path 裡。
DLL 檔提供了哪些函式,dumpbin.exe 的位置於 :
C:\Program Files\Microsoft Visual Studio 8\VC\bin
如果執行時出現找不到 mspdb80.dll 時,
將 C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
加到系統環境變數的 Path 裡。
2011年9月8日 星期四
char, wchar_t and TCHAR
在 c 裡常見的 char 代表 1 個 byte,
後來為了引入寬字元, 而有了 2 個 bytes 的 wchar_t,
wchar_t 的定義如下 :
typedef unsigned short wchar_t;
平常我們所用的字串處理函式如下 :
char* str = "hello!"; // 7
len = strlen(str);
當然也有用來處理寬字元字串的函式 :
wchar_t* str = "hello!"; // 14
len = wcslen(str);
為了使程式既能按 ASCII 又能按 Unicode 編譯,而衍伸了通用變數 TCHAR,
在 tchar.h 裡可以看到,當有 #define _UNIOCODE 時
typedef wchar_t TCHAR
反之,
typedef char TCHAR
如此一來,使用通用變數,將會使得程式碼更為一致性。
而通用的字串處理函式如 : l + 函式名稱
len = lstrlen(str);
len = lstrcpy(str);
len = lstrcpyn(str);
len = lstrcat(str);
訂閱:
文章 (Atom)