座標


ユウ  2002-12-24 10:32:54  No: 50871

ダイアログの中にピクチャボックスがあります。256×256です。
その1番左上の座標を(0.0)にしたいです
どうすればいいでしょうか?
今、1応、(0.0)なんですが、ダイアログの中のピクチャボックスの配置を変更するとまた設定しなければならないので、つねに左上の座標が(0.0)にいくようにしたいです


Wanderer  2002-12-25 03:23:49  No: 50872

MFCを使っているのなら、OnInitialDialog()の中で、ピクチャボックスの座標を(0, 0)に設定すればいいのではないでしょうか。


ユウ  2002-12-25 16:02:28  No: 50873

SDIを使ってます・・・


YuO  2002-12-25 16:42:05  No: 50874

SDI(=Single Document Interface)を使っている,と言われても……。
MFCを使おうが使うまいが,SDIであるプログラムは作れますよ。


Wanderer  2002-12-25 17:45:50  No: 50875

ごめんなさい書き間違えていました。OnInitDialog()でした。

ちなみにこの雰囲気からするとユウさんはMFCを使っていると思われます。
試してみてください。


ユウ  2002-12-26 22:24:42  No: 50876

どういった形にすればよろしいのでしょうか?
OnInitDialog()というものがないのですが・・


Wanderer  2002-12-27 05:06:07  No: 50877

メッセージハンドラの追加方法はわかりますか?

クラスビューのダイアログクラス上で右クリックすると出るメニューに
ありますが、そこでWM_INITDIALOGを選択してハンドラを追加してくださ
い。そうしたら OnInitDialog()が出てきます。

その中でピクチャボックスのオブジェクトに対してMoveWindow(0, 0, 256,
 256)とでもすれば問題ないかと思います。


ユウ  2002-12-27 23:06:45  No: 50878

WM_INITDIALOGというんがないんですけど。すいません


ゆう  2002-12-28 02:53:03  No: 50879

BOOL CAboutDlg::OnInitDialog() 
{
  CDialog::OnInitDialog();
  
  MoveWindow(IDC_FIGURE, 0, 0, 256, 256);
  
   TODO: return TRUE; 
 }
ここまでできたんですが、まだ座標がさだまりません
どうしたらいいのでしょうか?


cc  2002-12-28 04:34:41  No: 50880

引数がめちゃくちゃです。
とりあえずMSDNでMoveWindowを調べてください・・・


Wanderer  2002-12-28 04:43:20  No: 50881

>MoveWindow(IDC_FIGURE, 0, 0, 256, 256);

MSDNを見ると、MoveWindowの関数の引数は、
MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint);
となっていると思います。これに当てはめて考えてみてください。

(IDC_FIGURE, 0)の座標を左上として、サイズ(0, 256)の大きさのウインドウに変更することになります。また、単にMoveWindowとしただけでは、変化するのは自分自身(この場合はCAboutDlg)になります。SDKの方のMoveWindowを見られたのかもしれませんが、引数の数が一致していません。

VCをほとんど理解されていないような気がしますので、一度入門書等を読まれた方がよろしいかと思います。なお、以下のようにすると動作しますが、手順を記憶するのではなく、MSDN等を参照しながらきちんと意味を理解するようにしてくださいね。

コントロールへの一時的なポインタを取得するために GetDlgItem()を
使用します。

CWnd* pWnd = GetDlgItem(IDC_FIGURE);

移動するのはコントロールですから、コントロールのポインタに対して
MoveWindowを実行します。

pWnd->MoveWindow(0, 0, 256, 256);


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加