VC++ 全域 Hook 實現程式換膚 (按鈕為例)
前言 傳統換膚需重寫每個控件類別 (如 CButtonEx, CEditEx),侵入性強、維護難。本文示範 **全域視窗鉤子 (WH_CALLWNDPROC)*
VC++ 不規則視窗實作 (CBitmapDialog)
前言 利用位圖透明色建立任意形狀對話框是打造個性化 UI 常用技術。本文介紹封裝良好的 CBitmapDialog 類別:載入位圖、指定透明色、自動計算區域 (
VC++ 圖片超連結控件 (CMapHyperLink)
前言 經典 CHyperLink (Chris Maunder) 僅支援靜態文字超連結。專案需求在 Picture Control 上實現超連結:滑鼠進入變手型
VC++ COM 元件實現靈活報表輸出 (YTReport)
前言 報表列印是企業應用核心需求。本文提供一個 COM 元件 YTReport,支援動態加入資料、多種表格樣式 (正表/反表/雙聯表)、標題/尾註/製表人、分頁
無標題列對話框拖曳移動:WM_NCHITTEST 攔截法與 HTTRANSPARENT 穿透技巧
無框架對話框(移除標題列與邊框)常用於啟動畫面、媒體播放器、自訂 UI。但失去標題列後,使用者無法拖曳移動視窗。本文介紹兩種專業解法:WM_NCHITTEST
VC++ 封裝工業級串口通訊類庫 (同步/非同步/執行緒監控)
前言 串口 (COM) 在工控、儀器、POS、嵌入式通訊中極為普遍。Windows 提供 CreateFile/ReadFile/WriteFile 等 API
MSN Messenger 6.0 COM 介面開發:獲取聯絡人清單完整範例
MSN Messenger 6.0 公開 COM 介面允許第三方應用整合即時通訊功能。本文介紹如何透過 MessengerAPI 取得聯絡人清單,涵蓋 VB 簡
VC++ TreeCtrl 使用背景圖片並解決閃爍
前言 標準 CTreeCtrl 不支援背景圖片。網上常見做法在 OnPaint 繪製背景再貼上 Tree 內容,但展開/摺疊節點時背景會劇烈閃爍。本文結合雙緩衝
Windows 分層視窗 API 實現視窗透明效果:SetLayeredWindowAttributes 動態載入技巧
Windows 2000 引入分層視窗,透過 SetLayeredWindowAttributes() 可輕鬆實現視窗整體透明、淡入淡出、色鍵透明等效果。但舊版
Outlook 風格導航列控制項 CXTOutBarCtrl 獨立版整合指南
Xtreme Toolkit 的 CXTOutBarCtrl 是功能強大的 Outlook Bar 控制項,支援資料夾分組、拖曳排序、標籤編輯、圖示切換等豐富功
MFC 多文件應用程式架構:動態選單工具列、對話列、單一實例、自訂視圖
本文展示一個功能完整的 MFC 多文件應用程式(MDI)架構範例,涵蓋動態選單/工具列切換、自製對話列、位圖按鈕與選單、單一實例執行機制、自訂視圖類別等實用技巧
MFC 視窗鎖定技巧:禁止移動、調整大小、分割條拖曳、系統選單操作
某些專用應用(如自助終端機、工業控制介面、考試系統)需鎖定視窗狀態,防止使用者移動、調整大小、最大化/最小化、拖曳分割條。本文系統性解決 MFC SDI/MDI
WinInet CFtpFileFind 遞迴遍歷 FTP 目錄完整實作
WinInet 封裝了 Winsock 細節,提供 CInternetSession、CFtpConnection、CFtpFileFind 等類別,大幅簡化
MFC CListCtrl 子項編輯完整實作:單點高亮、雙點編輯
MFC CListCtrl 僅支援標籤(第 0 欄)編輯(需設定 LVS_EDITLABELS),子項無法直接編輯。本文實作一個 CEditListCtrl 擴
IPv6 網路程式設計實戰:Windows 平台環境建置與 Socket API 遷移指南
IPv4 經營 20 餘年,位址耗盡已成定局。IPv6 擁有 128 位元龐大位址空間、內建 QoS、簡化封包頭等優勢,將逐步取代 IPv4。對網路程式開發者而
Windows NT 特定使用者身分執行程式:服務模擬與 LogonUser 實作
在 Windows NT/2000/XP 環境下,以特定使用者身分啟動程序是系統管理與自動化部署的常見需求。然而 LogonUser() API 要求呼叫者擁有
MFC 工具列圖示高色彩載入技巧:CImageList 透明色與色深設定
在 VC 開發中,工具列圖示若超過 256 色直接載入常會失真。許多開發者嘗試載入高色彩位圖資源,卻苦於缺乏合適的繪圖工具製作此類位圖。本文揭示一種更直接的方法
C/C++ 獲取本機 IP 位址完整範例
在網路程式設計中,獲取本機 IP 位址是基礎需求。本文提供一個基於 Winsock 2.0 的完整主控台程式範例,展示如何透過 gethostname() 取得