1

私は C++ のプログラム ベースに取り組んでおり、SiliconSoftware インターフェイスも使用しています。添付の図からわかるように、私はメイン ウィンドウを c++ win32 コードで実行していますが、表示ウィンドウは次のコードのフレーム グラバー インターフェイスで作成されます。

int Bits=8; int nId =::CreateDisplay(Bits,GrabberOptions::getWidth(),GrabberOptions::getHeight());SetBufferWidth(nId,GrabberOptions::getWidth(),GrabberOptions::getHeight());::DrawBuffer(nId,Fg_getImagePtrEx(fg,lastPicNr,0,_memoryAllc),lastPicNr,"");

しかし、メインウィンドウ内で開くこの表示ウィンドウが必要です。どうすればできますか?何か案が? ここに画像の説明を入力

4

1 に答える 1

5

あなたが持っているとしましょう

HWND a = ...
HWND b = ...

どのようにして取得された兄弟ウィンドウのネイティブハンドルであると仮定します。ba の子を作成するには、次のことを行う必要があります。

Setparent(b,a); //a will be the new parent b
DWORD style = GetWindowLong(b,GWL_STYLE); //get the b style
style &= ~(WS_POPUP|WS_CAPTION); //reset the "caption" and "popup" bits
style |= WS_CHILD; //set the "child" bit
SetWindowLong(b,GWL_STYLE,style); //set the new style of b
RECT rc; //temporary rectangle
GetClientRect(a,&rc); //the "inside border" rectangle for a
MoveWindow(b,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top); //place b at (x,y,w,h) in a
UpdateWindow(a);

a から WM_SIZE を処理し、それに応じて b を移動して、(新しい) 親と一緒にサイズを変更する必要があります。

于 2012-04-05T16:52:43.633 に答える