クラスからのウインドウ – プログラミング – Home

クラスからのウインドウ
 
通知
すべてクリア

[解決済] クラスからのウインドウ


おい2
 おい2
(@おい2)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

おい2です。

今、クラスを使ってウインドウを作っていますが、
ウインドウを生成するとき、

//w1.h

#include windows.h

class w1
{
private:
char name[41];
HWND hWnd;
MSG msg;
WNDCLASS myProg;
HINSTANCE hInst;
HINSTANCE hPreI;
LPSTR lpszCmd;
int nCmd;
public:
w1(char s[],HINSTANCE hInstance, HINSTANCE hPreInst,LPSTR lpszCmdLine, int
nCmdShow);
int wc();
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
};

でLRESULT CALLBACK WndProcをクラス内のウインドウ生成プログラムの下のパラメータ
int w1::wc()
{
    …(プログラム省略)
myProg.lpfnWndProc =WndProc;
    …(プログラム省略)
}
にいれると、

error C2440: '=' : 'long (__stdcall w1::*)(struct HWND__ *,unsigned
int,unsigned int,long)' から 'long (__stdcall *)(struct HWND__ *,unsigned
int,unsigned int,long)' に変換することはできません。(新しい動作 ;
ヘルプを参照)

とでてできません。クラス内でのWndProcはどう扱えばよいのでしょうか?
よろしくお願いします。


引用未解決
トピックタグ
くたくた
 くたくた
(@くたくた)
ゲスト
結合: 23年前
投稿: 119
 

w1::WndProcを静的メンバ関数にしてみて下さい。


返信引用
おい2
 おい2
(@おい2)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

ありがとうございます。

static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

にしたら動きました


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました