トップページ⇒tech
22コメント4KB

ハンドルの取得

■ このスレッドは過去ログ倉庫に格納されています
0001ぽんたNGNG
MFCのSDIでの製作を行っているのですが、ViewクラスでWin32の関数を使いたくて
Windowのハンドルがどうしても必要なのです。だれかわかる方おしえてください。
0002デフォルトの名無しさんNGNG
VBにしとこうよ、、
0003デフォルトの名無しさんNGNG
GetSafeHwnd()
0004マジレスさんNGNG
HWND GetParentHwnd(CView *)
0005デフォルトの名無しさんNGNG
*
0006デフォルトの名無しさんNGNG
 (())
  *
0007デフォルトの名無しさんNGNG
>>6
おばか?
0008デフォルトの名無しさんNGNG
>>6
ハァハァ
0009デフォルトの名無しさんNGNG
>>6
初めてみました。
凄いビンビンです。
2chに来て良かったです!
0010デフォルトの名無しさんNGNG
>>1
spy++を使えば良いだけでは?
「スパイ」→「ウィンドウ検索」で知りたいウィンドウにカーソルをあわせる
0011デフォルトの名無しさんNGNG
>>10
おばか?
HWND の値を見つけてどうする。
問題はコードでの HWND の *見つけ方* でんがな。
0012デフォルトの名無しさん NGNG
AfxGetMainWnd()->m_hWnd
0013SAGENGNG
それはViewのハンドルでは無いような。>>12
0014デフォルトの名無しさんNGNG
this
0015デフォルトの名無しさんNGNG
どっから呼び出すかで最適解は異なるけど、どっからでもと
言うなら、
((CFrameWnd*)AfxGetMainWnd())->GetActiveView()->GetSafeHwnd()
とかかな
単にビューの中からってんだったら、m_hWndでいいじゃん
0016デフォルトの名無しさんNGNG
MFC使うときは主なクラスのポインタをグローバル定義したクラスのポインタにコピーして必要なときはグローバルポインタを使用してアクセスしてる。
クラスのコンストラクタでthisポインタをコピーしてる。

CView_厨房 *逝って良し;


CView_厨房::CView_厨房()
{
逝って良し=this;
}

こんな感じでコピーしとけば超簡単!
0017デフォルトの名無しさんNGNG
>16
趣味ならいいけど仕事でそんなことしないでね。
C++なんだからせめて何かでラップしといておくれ。

class ViewList{
private:
 static vector<CView&> list;//なんでもいいんだけど
public:
 static void addView(string viewname@`CView& view){//なんか実装}
 static CView& getView(string viewname){//なんか実装}
}

CView_厨房::CView_厨房()
{
 ViewList::addView("CView_厨房"@`*this);
}

とかさ。
0018デフォルトの名無しさんNGNG
>>16
なんちゅうことすんねん。バケツでウランでっか?
0019デフォルトの名無しさんNGNG
tryもcatchも外して最も単純で解り易く危ない実装っちゅう事やね
002016NGNG
この方法ってマズイの?
自分ではMFCのフレームワーク構造を理解しなくてもSDK風のプログラムができる超イケてる方法だと思ってたのに・・・
この方法で作ったオンラインソフトを複数公開してるんだけどヤバイ?
0021デフォルトの名無しさんNGNG
>>16
動きはするよ。
0022デフォルトの名無しさんNGNG
VCLみたいな使い方だな。
■ このスレッドは過去ログ倉庫に格納されています