原创 MFC線程之間互相發送消息:PostThreadMessage

MFC中可以使用PostThreadMessage指定線程ID單獨發送消息,線程也可以用GetMessage函數接收消息; (1)PostThreadMessage函數: PostThreadMessage用法:; 函數原型:BO

原创 線程與線程同步心得,以及類的成員函數作爲線程啓動函數的一些問題

線程與線程同步 關於線程的基礎知識講解,這位博主講的非常好:編程思想之多線程與多進程(1)——以操作系統的角度述說線程與進程 (爲啥上傳圖片時,右下角水印會有一個奇怪的qq號?) (1)WINDOWS下創建線程的幾種方式及其區別

原创 MFC發送自定義消息:SendMessage與PostMesage

1.普通的自定義消息發送步驟: (1)在.h文件聲明自定義消息: (2)在.h文件的類中聲明消息處理函數: (3)在.cpp文件的消息映射宏裏將消息與消息處理函數綁定: (4)在.cpp文件中定義消息處理函數: (5)發送

原创 windows平臺主線程退出後對子線程的影響

1.進程與主線程: 首先得明確一點,我理解的進程是一個exe文件運行之後的獨立資源,每個進程有且僅有一個主線程,進程是負責分配資源的,線程是負責執行資源的(一般可以認爲線程的執行時間就是線程調度函數的運行時間),相當於進程是包工頭

原创 QT/MFC按鈕雙擊事件(自定義控件類/類的提升)

QT/MFC中對很多控件進行了封裝,常用的消息/事件也都可以很方便地添加,但是有些控件類的消息或者屬性,QT/MFC都默認沒有提供重寫方法,這時就只能定義某個控件的子類,並重寫其響應消息/事件/屬性,比如我們想定義一個按鈕的雙擊事

原创 關於MFC消息映射機制流程

以前剛來新單位的時候,只知道這是C++崗,來了之後看項目代碼死都找不到主函數…後來才發現是MFC,這玩意把int main給封裝藏起來了,當然找不到,囧。MFC和QT的數據傳輸有些是依賴於對話框和控件的,而這又涉及到一個很重要的機制:MFC

原创 C++讀取文本操作API與注意事項

1.文本讀寫API(1) 從文本中讀取整型數據API:UINT WINAPI GetPrivateProfileInt(LPCSTR lpAppName, LPCSTR lpKeyName, INT nDefault, LPCSTR lpF

原创 QT樣式表和QSS文件介紹

QT可以使用跟html一樣的樣式表去修飾頁面,語法也是跟css差不多,在此基礎上可以編寫qss文件去給控件或頁面換膚。 (1)設置樣式表屬性有兩種方法: ①方法一:在ui文件中修改: 右鍵點擊控件,選擇"改變樣式表…",進入以下界

原创 C++ TCP服務端一對多

TCP是寫通訊軟件常用的一種通信方式,以前實習就寫過這個,現在工作中基本上都是作爲C/S模型中的客戶端去跟服務端對接的,今天趁項目還沒開始忙,把一個完整的服務端一對多模型記錄一下(後面有個封裝成類的接口,感興趣的可以自己複製粘貼玩

原创 QT/MFC自定義控件類的事件(類的提升)

QT/MFC中對很多控件進行了封裝,常用的消息/事件也都可以很方便地添加,但是有些控件類的消息或者屬性,QT/MFC都默認沒有提供重寫方法,這時就只能定義某個控件的子類,並重寫其響應消息/事件/屬性,比如我們想定義一個按鈕的雙擊事

原创 windows下寬字節和多字節的問題

寬字節和多字節,一度是我的噩夢,明明是調用同一個API,但是最後的返回值一會是char *,一會又是wchar_t *,實屬煩人,前幾天看呂鑫老師的視頻,終於弄清楚了。 Windows中有兩種編碼格式: (1) ANSI/多字節編

原创 MFC重載PreTranslate函數截取消息

如果我們想對系統消息隊列中的某個消息自定義其行爲,可以選擇某個對話框,添加PreTranslateMessage函數並重寫; 需要注意的點: (1) 只有消息隊列中的消息會被PreTranslateMessage所截獲,如果是用S

原创 MFC中CList使用方法以及項目踩坑

最近項目裏一個問題要用到容器存儲數據,因爲C++的stl容器在MFC中不能用,因爲會引起運算符重載,所以只能用MFC中的CList容器,但是csdn上的CList博客都是抄來抄去,也沒有具體的用法實例,太噁心了,自己折騰了半天才找