首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

Visual C++ 進階實戰經驗(上):動態視窗標題、高色位圖資源、移除選單工具列狀態列

     編輯:VC 教學

技巧一:執行期動態修改主視窗標題

舊法修改 PreCreateWindow 中 m_strTitle 僅能一次性設定。動態需求(如顯示滑鼠座標)需用:

CWnd* pMain = AfxGetMainWnd();
CString str; str.Format(_T("座標: %d, %d"), x, y);
pMain->SetWindowText(str);

AfxGetMainWnd 取得主框架指標,SetWindowText 為 Win32 API,可隨時呼叫。

技巧二:將 256 色以上位圖作為資源內嵌

VC 版本限制演進

  • VC 5.0 前:資源編輯器不支援 >256 色,匯入會報錯
  • VC 5.0:可匯入高色位圖,但編輯器無法預覽,需選 Win32 Release 建置,且無法自動對應按鈕四狀態(UP/DOWN/FOCUS/DISABLE)

手動實現高色位圖按鈕

  1. 定義四狀態常數 BUTTON_UP 等
  2. 對話框類記錄各按鈕 CRect 位置與狀態變數
  3. 處理 WM_MOUSEMOVE/WM_LBUTTONDOWN/WM_LBUTTONUP 切換狀態
  4. OnPaint 中根據狀態 CDC::DrawState 或 BitBlt 繪製對應位圖

技巧三:建立無選單、無工具列、無狀態列的 SDI 應用程式

步驟

  1. MainFrm.cpp OnCreate 註解掉工具列/狀態列建立代碼
  2. PreCreateWindow 設定 cs.style = WS_OVERLAPPED | WS_BORDER; 移除系統選單、最大最小化、可調整邊框
  3. YourApp.cpp InitInstance 中 CSingleDocTemplate 建構函數第一參數傳 NULL 替換 IDR_MAINFRAME
  4. 建置配置選 Win32 Release 生成

適用場景

全螢幕展示程式、嵌入式控制介面、自訂非標準視窗風格應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved