
MFC
苦行者
一個什麼都作,什麼都不精的工程師
展开
-
WM_DEVICECHANGE使用方式
WM_DEVICECHANGE的使用方式有二種,一種是透過WindowProc()的方式,一種是直接在程式裡加上OnDeviceChange()的函數,底下就先介紹第二種方式。1. 新增消息 -- 在Dialog的.cpp裡加上藍色部份:BEGIN_MESSAGE_MAP原创 2011-09-22 15:04:36 · 26778 阅读 · 3 评论 -
如何使用VS2008內建的InstallShield
一般公司在發佈軟體時都會另外再花錢買一套Install shield的程式,製作安裝軟體,其實微軟在其Visual Studio裡就已經有內建一個簡單實用的Install shield,目前我都是用這一套,不過只會一些基本上功能,先把它記下來,以免忘了。1. 在方案總管的so原创 2011-09-23 12:50:44 · 3333 阅读 · 0 评论 -
WinExec() and ShellExecute() 的用法
在MFC裡要開啟外部程式有三個API可以用,Shellexecute()被運用的機率比較高,主要是它可以控制的參數也比較多。1. Shellexecute() 函數原型HINSTANCE ShellExecute( HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,IN原创 2011-10-28 12:27:23 · 24179 阅读 · 0 评论 -
找目錄及設定目錄
在MFC的程式開發中,常會找目前的路徑及設定路徑,找了很久,發現一些常用的API1. GetModuleFileName() : 找當前執行程序的路徑DWORD WINAPI GetModuleFileName( __in_opt HMODULE hModule, __out LPTSTR lpFilename, __in DWORD nSize);參數:原创 2011-10-28 15:37:34 · 882 阅读 · 0 评论 -
SetFocus()的用法
做一個視窗程式,在OnInitDialog裡下SetFocus()這個函數,但是沒有反應,一直無法在要設定focus的元件上。上網找了一下,得到的答案是: 在OnInitDialog下SetFocus(),有可能因為視窗還沒有出現,而不動作。最好是把SetFocus()放在OnShowWindow()裡去執行。實作了一下,真的可行。原创 2012-11-07 13:40:34 · 13681 阅读 · 0 评论 -
Thread and Event
近來在處理一些Serial port的問題,打算將讀取data的程式做成thread,減少主線程被佔住的時間,發現使用Event與Thread配合,還挺不錯用的,方式如下: 先定義一個 event的 HANDLEHANDLE m_hReadEvent; 在MFC的OnInitialDlg() Create他// CreateEvent第一個參數可以不設定,第二個參數為是否使原创 2012-11-13 15:38:39 · 1170 阅读 · 0 评论 -
setupapi.h和setupapi.lib該如何使用
最近需要讀取及轉換USB devices的模式,會用到SetupDi****相關的API,這些API都是放在setupapi.h裡,找了很久,在網路上也有人提到,但都是片面的,也都分散在不同的地方,現在我就將其整合放在我自己的Blog裡,這樣下次要用也不會忘記。這一組API是Microsoft PlatformSDK提供的,路徑也在VS裡。首先在程式裡要#include , 在Vis原创 2011-09-22 09:53:05 · 19034 阅读 · 4 评论 -
設定Dialog的classname
最近開發了一個程式,做了一個安裝程式。在解安裝時,如果程式在執行,還是會被解安裝,就想要讓系統發出訊息,要使用者先關掉程式再解安裝。上網找了很久,發現,只要利用classname去找到我的程式,就可以完成我要的動作,但是要怎麼去找到classname呢? 在MDI與Dialog二者之間的設定方式不同,這裡只做Dialog的說明。參考:http://support.microsoft.c转载 2013-02-23 14:40:10 · 1341 阅读 · 0 评论