ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月27日(土) 17:39

全ての表示時間は UTC+09:00 です




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - コントロールのHDC取得について
作成者 メッセージ
  記事の件名:  Re: コントロールのHDC取得について  引用付きで返信する
> ハンドルは GetDlgItem() を用いて次のように取得します。
> HDC を取得したいとのことなので、この hWndLabel を GetDC() に渡してやれば良いでしょう。
> しかし、現在僕の手元に検証できる環境がないので確かなことではありませんが、ラベルコントロールはもともと HDC を持ってなかったような気がします。
> もしかすると HWND すら持っていなかったかもしれません。
> その場合は NULL が返ってくるのかしら?
>
> このコードで無事動けば良いのですが。
試してみたところ、その後の描画処理もおかしかったのか
相変わらず描画されないのではっきりとした確認ではありませんが、
デバッグでブレークさせて値を確認したらゼロでもマイナスでもない値が
入っていたので取れてはいると思います

ハンドルを使う別の簡単な方法で確認してみようと思います
ありがとぷございます

#描画処理も…C++的なABは私には難しいです;
投稿記事 Posted: 2008年11月26日(水) 11:38
  記事の件名:  Re: コントロールのHDC取得について  引用付きで返信する
GetDC() に渡すべき値はウィンドウの ID(TestLabel など)ではなくウィンドウのハンドル(HWND)です。
ハンドルは GetDlgItem() を用いて次のように取得します。
コード:
Dim hWndLabel As HWND
hWndLabel = GetDlgItem(hMainWnd, TestLabel)
HDC を取得したいとのことなので、この hWndLabel を GetDC() に渡してやれば良いでしょう。

しかし、現在僕の手元に検証できる環境がないので確かなことではありませんが、ラベルコントロールはもともと HDC を持ってなかったような気がします。
もしかすると HWND すら持っていなかったかもしれません。
その場合は NULL が返ってくるのかしら?

このコードで無事動けば良いのですが。
投稿記事 Posted: 2008年11月25日(火) 15:57
  記事の件名:  コントロールのHDC取得について  引用付きで返信する
こんにちわ

今回コントロールに描画しようと、デバイスコンテキストハンドルを取得しようとしました
フォームはhMainWndでウィンドウハンドルが取れるので
GetDCで取得できますが、スタティックラベルでやろうとしてつまづきました

スタティックラベルのコントロール名はTestLabelなので、
GetDCにTestLabelを渡してみたりしましたが正常に描画できません

コントロールのhDC取得方法を教えてください
以上お願いします
投稿記事 Posted: 2008年11月25日(火) 11:47

全ての表示時間は UTC+09:00 です


ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean