懷來住房和城鄉(xiāng)建設(shè)委員會網(wǎng)站網(wǎng)絡(luò)推廣公司有多少家
提示:記錄一下MFC新建內(nèi)部消息的成功過程
文章目錄
- 前言
- 一、pandas是什么?
- 二、使用步驟
- 1.引入庫
- 2.讀入數(shù)據(jù)
- 總結(jié)
前言
先說一下基本情況,因為要在mapview上增加一個顯示加載時間的功能。然后發(fā)現(xiàn)是要等加載完再顯示時間,顯示在主窗口。所以就是在子線程中發(fā)送消息給窗口的問題。查了不好資料,最后實現(xiàn)了。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、第一階段
先是百度的,知道了異步消息postMessage,::PostMessage(hWinHandle, ADD_NUM, 1, 1);決定要postmessage發(fā)送消息。一開始的寫法是::PostMessage(NULL, ADD_NUM, 0, 0),同時創(chuàng)建了ADD_NUM,即#define ADD_NUM ?(WM_USER+101)。然后在CMainDlg類中分別加了,
BEGIN_MESSAGE_MAP(CMainDlg, CDialogEx)ON_COMMAND(ADD_NUM, &CMainDlg::AddNum)
END_MESSAGE_MAP()
和
LRESULT CMainDlg::AddNum(WPARAM w, LPARAM l)
{MessageBox(_T("輸入經(jīng)緯度值不正確!"));return 0;
}
?和
afx_msg LRESULT AddNum(WPARAM w, LPARAM l);
但是,
加上以上的代碼調(diào)試沒有用。?
二、第二階段
1.看bilibili視頻
下班路上和下班到家看了大衣哥的b站視頻,根據(jù)他的代碼重新確認了一下這個方案的可行性,而且改了一個錯誤,即這邊要改成
BEGIN_MESSAGE_MAP(CMainDlg, CDialogEx)ON_MESSAGE(ADD_NUM, &CMainDlg::AddNum)
END_MESSAGE_MAP()
第二天早上上班改了試了一下,還是不能觸發(fā)消息。
但是這時候已經(jīng)確定是因為沒有獲取窗口句柄的原因,其他地方都對比了基本和大衣哥視頻是一致的。
所以接下來的任務就是找到一個能在子線程獲取窗口句柄的方法。
三、第三階段
1.繼續(xù)百度
搜到了這個帖子:MFC之使用FindWindow函數(shù)獲取指定窗口句柄進行窗口操作(實測:關(guān)閉Windows的格式化彈窗)_mfc findwindow_kifea的博客-CSDN博客
根據(jù)他的代碼看了一下差別,最重要的是它提供了一個新的獲取句柄的方法。?
獲取窗口類名或窗口名的方法(spy++使用方法-百度經(jīng)驗)
根據(jù)他的方法,是在vs工具菜單欄下,點擊spy++按鈕,
然后進入spy++菜單
點擊 spy++ 工具欄中的?望遠鏡?圖標,彈出一個“窗口搜索”的對話框。在“窗口搜索”對話框中,鼠標左鍵在?查找程序工具?后面的?圖標?處按下不放,將此圖標拖移到我們想要知道信息的窗口內(nèi),再松開鼠標。
“窗口搜索”對話框內(nèi)將顯示該要查找信息的窗口的句柄、標題和類名。查看完畢后,單擊確定。
然后再代碼中修改獲取句柄的代碼
HWND hWinHandle = NULL;WNDCLASS m_WindClass1; //隱藏窗口類m_WindClass1.lpszClassName = _T("MapViewer 1.0001(build 0001)");::RegisterClass(&m_WindClass1);hWinHandle = ::FindWindow(_T("#32770"), _T("MapViewer 1.0001(build 0001)"));if (hWinHandle){::PostMessage(hWinHandle, ADD_NUM, 1, 1);}
現(xiàn)在可以觸發(fā)消息了。
該處使用的url網(wǎng)絡(luò)請求的數(shù)據(jù)。
總結(jié)
提示:這里對文章進行總結(jié):
例如:以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。