2009-06-11 2 views
1

リサイズコンボボックス(変化幅)

HWND h = CreateWindowEx("COMBOBOX", "Text", CBS_DROPDOWN | WS_CHILD, WS_EX_CLIENTEDGE, ParentWnd, 0, 0, 200, 24); 

コンボボックスが私のフォーム上では問題を作成していないが、しかし、私は次のようにサイズを変更しようとするとそれは勝ちましたt仕事:

SetWindowPos(h, 0, 0, 0, NewWidth, OldHeight, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); 

これはどうして起こりますか?それは何とか透明なコンボボックスの間違った部分のサイズを変更するようです。

私はいろいろなことを試してきましたが、それはおそらく何か愚かですが、私はそれに私の指を置くことはできません。

よろしく、 アランDeschenes http://www.arianesoft.ca

答えて

0

は、あなたがそれをリサイズした後、ウィンドウ全体を再描画していますか?

+0

はい私は。 h $ = NewControlEx(0、 "COMBOBOX"、NULL、 "TEXT"、CBS_DROPDOWN | WS_CHILD、WS_EX_CLIENTEDGE、Parent.Handle、0、0、200、24); log(h $); ShowWindow(h $、SW_SHOW); SetWindowPos(h $、0,100,100,500,24、SWP_NOZORDER | SWP_NOACTIVATE); InvalidateRect(h $、NULL、True); このコードはPPL(私自身の言語)で書かれており、NewControlEx()ではCreateWindowEx()を使用しています。 – Kornalius

+0

コメントではあまりフォーマットがうまくいきません。自分のスレッドに投稿できる他の方法はありますか? – Kornalius

0

コンボボックスのどの部分がサイズ変更されていませんか?テキストボックス、またはドロップダウン?

CB_SETDROPPEDWIDTHメッセージでドロップダウンのサイズを変更できます。

+0

編集部分で、ドロップダウンリストではありません。 – Kornalius

+0

私はスクリーンショットを送ることができるのが大好きです。できることはありますか? – Kornalius

2

Guys、私はそれを見つけました...私のNewControlEx()C関数には、正しく機能しないものがあります。私は使用しました:

h$ = CreateWindowEx(0, "COMBOBOX", "TEXT", CBS_DROPDOWN | WS_CHILD, 10, 10, 400, 24, Parent.Handle, 0, Instance%, NULL); 
SetWindowPos(h$, 0, 100, 100, 400, 32, SWP_NOZORDER | SWP_NOACTIVATE); 
ShowWindow(h$, SW_SHOW); 
InvalidateRect(h$, NULL, True); 

このように動作する必要があります。ご迷惑おかけして申し訳ありません。

元のwndprocを処理していなかったWM_SIZE:イベント処理がすぐに返されました。

よろしく、 アランDeschenes http://www.arianesoft.ca

関連する問題