SetWindowPos()で起動ごとに大きさが変わる・・・

[戻る]
初心者 2005/07/01(金) 20:14:46
こんばんわ。

現在、値によって、
表示されるWindowの大きさを変える処理を作成しています。

if(a < 4)    
SetWindowPos(&wndTop,0,0,320/*幅可変*/,420,SWP_NOMOVE|SWP_NOZORDER);

if(a >= 4)
SetWindowPos(&wndTop,0,0,320+56*(a-3)/*幅可変*/,420,SWP_NOMOVE|SWP_NOZORDER);

上記がその一部ですが、
a=10でも、Windowの大きさが変わってしまいます・・・

変われない方法はないでしょうか?

環境は
XPSP2 VC++6.0SP2 MFC
です。

よろしくお願いします。

RAPT 2005/07/02(土) 02:26:23
a == 10 なら、if( a >= 4 ) が真となるので可変で合っていませんか?

初心者 2005/07/04(月) 09:35:51
レスありがとうございます。

short int haba = 0;
if(a == 3)    haba = 320;
if(a == 4)    haba = 376;
if(a == 5)    haba = 432;
if(a == 6)    haba = 488;
以下省略

SetWindowPos(&wndTop,0,0,haba/*幅可変*/,420,SWP_NOMOVE|SWP_NOZORDER);

でも、約5回に1回、スクロールバーが出てきてしまいます・・・。
(出ないような大きさに設定しているのですが。。ちなみにOnCreat()内)

また、PreCreateWindow()でWindowの出る位置を決めていたのですが、
ここでのcs.xとcs.yをコメントにしたら、
windowの大きさは変わらなくなったのですが、位置がランダムになってしまいました。


SetWindowPos()とPreCreateWindow()は、影響を及ぼすことがあるのでしょうか???

古いスレッドには追加発言できません。