一個標準窗口過程函數借此原型:傳遞額外的wParam/lParam參數?
LRESULT CALLBACK WndProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
當消息如WM_MOUSEMOVE
或WM_CHAR
,所述WndProc
函數將接收該消息源自的窗口中,並且任何額外的參數,這將是與MSG和wParam中/ lParam的。
我現在有一類。說
class Random
{
public:
void Initialize();
private:
void Draw();
HWND hWnd;
friend LRESULT CALLBACK RandomProc (HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
};
的hWnd
之後,通過Initialize()
初始化和創建的,它會發送消息,如WM_LBUTTONDOWN
到RandomProc
。一旦收到消息,我希望RandomProc
使用Draw()
重繪類Random
的窗口。
的事情是,我將有多個Random
變量,而且每次都會有一個窗口。所有窗口將發送消息到RandomProc
,並希望它重新繪製hWnd
的相應窗口。我不知道哪個隨機變量根據hWnd參數或msg/wParam/lParam發送了消息,因此無法訪問相應的Draw()
函數並且無法重繪正確的窗口。
有沒有辦法每一條消息發送或有另一種方式來訪問隨機類,它的hWnd發送消息時的指針傳遞給類窗口的程序?
消息旨在以每個窗口爲基礎發送。你的'hWnd'參數是什麼?如果您希望窗口使用相同的過程,請讓它們使用相同的類,或者爲您使用的每個Windows類指定相應的過程。 – chris
就我而言,這些類有點像「按鈕」。我需要宣佈其中幾個。它們都具有相同的過程,因爲它們都是相同類型的「按鈕」,但我希望它們位於單獨的類中,以便輕鬆控制和聲明按鈕。有沒有辦法做到這一點? – GILGAMESH
但並不是每個按鈕都有相同的'HWND'。這就是你通常將他們分開的方式。用'HWND'繪製'有一個大問題嗎? – chris