本身CreateWindowEx建立的Window上的字是醜陋的,因此你必須對字體進行一個簡單的處理 git
HFONT hFont=(HFONT)GetStockObject(DEFAULT_GUI_FONT); LOGFONT logFont={0}; GetObject(hFont,sizeof(logFont),&logFont); DeleteObject(hFont); hFont=NULL; logFont.lfHeight=19; wcscpy_s(logFont.lfFaceName,TEXT("微軟雅黑")); //wcscpy_s(logFont.lfFaceName,TEXT("MS Shell Dlg")); hFont=CreateFontIndirect(&logFont);這段代碼的含義就是獲取系統默認的繪圖風格 設置一個字體的句柄,在WM_CREATE消息末尾還要SendMessage 發送WM_SETFONT消息修改控件字體。
ComBobox的功能就是選擇U盤,封裝一個函數:uInt FindUSBDisk();這裏涉及到一個重要的API GetDriveType,U盤的返回值是DRIVE_REMOVABLE,GetLogicalDrives的功能是獲取邏輯磁盤信息,因此,咱們先用GetLogicalDrives 獲取磁盤個數,再來用從'C'盤開始判斷是不是可移動磁盤,循環下去,用GetVolumeInformation確認是不是有效的驅動器,在確認是U盤時用GetDiskFreeSpaceEx 獲取磁盤容量。將得到的數據保存在UsbDevice DefUsbDevice[26];結構體數組中;頭文件中定義以下 數組
typedef struct _UsbDevice { uInt Id; wchar_t deviceLetter[10]; wchar_t RootPath[20]; wchar_t Info[260]; }UsbDevice; uInt FindUSBDisk(); extern UsbDevice DefUsbDevice[26];初始化時WM_CREATE 調用一次FindUSBDisk 初始化Combobox的項,在拔出或插入USB盤時有一個消息WM_DEVICECHANGE,這時咱們要清除掉ComboBox的項而且用FindUSBDisk從新獲取USB磁盤信息。而瀏覽按鈕則是獲取ISO鏡像。涉及到打開文件對話框,比較簡單。當用戶選取了USB磁盤而且Edit 內的ISO鏡像路徑正確,則開始製做USB啓動盤,iBurn 將啓動Format 程序等待格式化正確並退出,再啓動7z解壓並等待退出 最後啓動bootsect 等待退出。