原创 [ATL/WTL]_[初級]_[自定義菜單項字體]

場景 在開發WTL程序時,菜單基本都是標配,比如菜單欄菜單,右鍵上下文菜單,按鈕菜單等等。但是如何設置菜單的字體,大小,顏色,或者說自繪菜單? 說明 我們看WTL提供的CMenu類,並不是一個窗口類,它只是封裝了一個HMEN

原创 [Windows]_[初級]_[如何不編程判斷進程是管理員模式啓動(UAC)]

場景 我們在開發Windows程序時, 安裝程序後一般會以admin方式啓動程序, 這時候程序的權限一般是admin權限。可如果重新打開程序時, 程序就是asInvoker的權限,即所屬用戶的Normal權限. 程序在某些邏輯上

原创 [學院]_[WTL的國外學習文檔]

0. 補充. 提供WTL的國外學習文檔. 1. WTL for MFC Programmers, Part I - ATL GUI Classes https://www.codeproject.com/Articles/3841

原创 [ATL/WTL]_[Gdiplus]_[Windows窗口如何顯示GIF動畫]

場景 在使用 WTL 和 Gdiplus 開發界面程序時,我們需要在界面顯示 GIF的動畫,可惜 WTL 和 Gdiplus並沒有執行顯示 GIF動畫的API. 那我們如何做? 說明 GIF文件關鍵的2個參數, 圖片的幀數,每幀

原创 [WTL/ATL]_[C/C++]_[如何給動態創建的按鈕綁定處理函數]

場景 我們在做 WTL 或 MFC 開發的時候, 是通過消息映射宏來綁定消息處理函數的.如果是窗口裏的子窗口需要綁定消息, 那麼基本上就是通過子窗口的 ID和類成員方法綁定某個消息處理宏,但是如何纔可以綁定動態創建的由系統自動

原创 [Object-C]_[初級]_[關於塊block的引用外部變量的規則]

場景 在開發 Object-C 程序時, 很多情況下會用到它的塊 block 特性, 這個 block 其實就是 lambda 表達式. 這個 block 和 lambda有什麼區別, 還有什麼需要注意的編程點? 我們在使

原创 [Cocoa]_[初級]_[NSNotificationCenter通知中心發佈接收消息注意事項]

場景 在 macOS 下進行 Cocoa 開發時,我們偶爾會需要監聽窗口的大小改變的通知,以便能控制子窗口或者 NSView 改變大小. 比如 NSWindowDidResizeNotification 通知. 那麼我們應該如

原创 [WTL/ATL]_[初級]_[DispatchAsync使用lambda表達式來簡化發送數據到界面線程]

場景 在進行 Win32 界面編程時,更新界面內容只能通過主線程進行更新. 那麼如果是在工作線程執行完邏輯後如何通過把數據傳遞給界面線程更新數據? 在 Windows 上開發界面我是使用輕量級 Win32框架, MFC 的

原创 [Android]_[gradle]_[gradlew.bat報錯KotlinNullPointerException]

場景 在構建 Android App 的時候,最常用的構建工具就是 gradle ,這個工具使用一種.gradle 的文本進行任務描述. 最常見的就是根據 build.gradle 的配置指定使用 gradle 的版本。接着根據

原创 [Python]_[初級]_[修改Windows服務-禁用WIN10的自動更新系統服務部分]

場景 在Windows裏使用Python做一些自動化管理時, 有時候需要創建,關閉,修改,禁用或刪除Windows服務, 而不是通過SC命令來簡單處理. 這時候我們就需要pywin32庫來調用WIN32的函數來操作. 說明

原创 [libxml2]_[中級]_[使用xmlReaderForIO讀取大文件和出現崩潰的原因]

場景 在 Windows , Linux 和 macOS 上開發 C/C++ 版本 XML 處理程序時, 我們通常會使用 libxml2 庫, 這個庫可以跨平臺, 而且在 *ux 下都會自帶這個庫. 但是使用這個庫時爲什麼可以

原创 [Python]_[初級]_[修改註冊表-禁用WIN10的自動更新註冊表部分]

場景 我們在Windows上開發Python腳本時,需要讀取系統設置或者判斷某個軟件是否安裝,禁用自動更新等都需要對註冊表進行修改,可以說非常常見。那麼Python有什麼模塊可以修改註冊表呢? 說明 Python3自帶的w

原创 [Python]_[中級]_[禁用WIN7和WIN10自動更新腳本]

場景 修改註冊表和禁用系統服務可以通過批處理,是否可以通過Python來處理? 能否寫一個Python腳本來禁用WIN7和WIN10的自動更新? 說明 我在禁用自動更新批處理腳本裏用批處理實現了兩個功能:1.修改註

原创 [系統]_[WIN7和WIN10]_[禁用自動更新批處理腳本]

場景 朋友說WIN10的補丁更新怕了,現在WIN10的補丁質量真是差,和iOS有一拼,就是新補丁帶來新BUG. 問我如何禁用自動更新。之前花了很長的時間寫了一個python腳本,發現無法修改本地組策略, 放棄了,改爲直接用批處理

原创 [學院]_[WTL運行Setup.js安裝項目嚮導找不到VisualStudio的解決辦法]

場景 1.在使用WTL進行Windows桌面應用開發搭建WTL環境時我們介紹了雙擊WTL目錄下的AppWizard\Setup.js會自動搜索已安裝的Visual Studio並安裝WTL的項目嚮導到Visual Studio裏.