ab.com コミュニティ https://www.activebasic.com/forum/ |
|
コントロールのHDC取得について https://www.activebasic.com/forum/viewtopic.php?t=2506 |
ページ 1 / 1 |
作成者: | Aber5 [ 2008年11月25日(火) 11:47 ] |
記事の件名: | コントロールのHDC取得について |
こんにちわ 今回コントロールに描画しようと、デバイスコンテキストハンドルを取得しようとしました フォームはhMainWndでウィンドウハンドルが取れるので GetDCで取得できますが、スタティックラベルでやろうとしてつまづきました スタティックラベルのコントロール名はTestLabelなので、 GetDCにTestLabelを渡してみたりしましたが正常に描画できません コントロールのhDC取得方法を教えてください 以上お願いします |
作成者: | tak [ 2008年11月25日(火) 15:57 ] |
記事の件名: | Re: コントロールのHDC取得について |
GetDC() に渡すべき値はウィンドウの ID(TestLabel など)ではなくウィンドウのハンドル(HWND)です。 ハンドルは GetDlgItem() を用いて次のように取得します。 コード: Dim hWndLabel As HWND hWndLabel = GetDlgItem(hMainWnd, TestLabel)HDC を取得したいとのことなので、この hWndLabel を GetDC() に渡してやれば良いでしょう。 しかし、現在僕の手元に検証できる環境がないので確かなことではありませんが、ラベルコントロールはもともと HDC を持ってなかったような気がします。 もしかすると HWND すら持っていなかったかもしれません。 その場合は NULL が返ってくるのかしら? このコードで無事動けば良いのですが。 |
作成者: | ABer5 [ 2008年11月26日(水) 11:38 ] |
記事の件名: | Re: コントロールのHDC取得について |
> ハンドルは GetDlgItem() を用いて次のように取得します。 > HDC を取得したいとのことなので、この hWndLabel を GetDC() に渡してやれば良いでしょう。 > しかし、現在僕の手元に検証できる環境がないので確かなことではありませんが、ラベルコントロールはもともと HDC を持ってなかったような気がします。 > もしかすると HWND すら持っていなかったかもしれません。 > その場合は NULL が返ってくるのかしら? > > このコードで無事動けば良いのですが。 試してみたところ、その後の描画処理もおかしかったのか 相変わらず描画されないのではっきりとした確認ではありませんが、 デバッグでブレークさせて値を確認したらゼロでもマイナスでもない値が 入っていたので取れてはいると思います ハンドルを使う別の簡単な方法で確認してみようと思います ありがとぷございます #描画処理も…C++的なABは私には難しいです; |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |