DOS窓のデバイスコンテキスト取得!
テスト処理などを行う時に手軽に画像を表示したいなぁ~
なんて思う時がある。
…いえいえ、いつも思っていましたよ…。(笑)
DOS窓のデバイスコンテキストを取得できると
簡単に描画できて色々便利なんだけどな~。
でも直球でDOS窓のデバイスコンテキストを取り出せません。
直球が駄目なら変化球で♪
#include<windows.h>
void main(void)
{
HWND hWnd;
HDC hDC;
int i;
char string[10];
// DOS窓のデバイスコンテキストを取得します。
hWnd=GetForegroundWindow();
hDC=GetDC(hWnd);
// …なんかの処理…
for(i=0;i<0xFFFFFF;i+=0x11)
{
SetPixel(hDC,rand()%200,rand()%200,i);
wsprintf(string,"0x%X",i);
TextOut(hDC,0,200,string,strlen(string));
}
Sleep(5000);
// 使った後は、ちゃんと返しましょう♪
ReleaseDC(hWnd,hDC);
}
他にも画面上に問答無用に描画!
ってのもある。
#include<windows.h>
void main(void)
{
HDC hDC;
int i;
char string[10];
// 画面のデバイスコンテキストを取得します。
hDC=CreateDC("DISPLAY",NULL,NULL,NULL);
// …なんかの処理…
for(i=0;i<0xFFFFFF;i+=0x11)
{
SetPixel(hDC,rand()%200,rand()%200,i);
wsprintf(string,"0x%X",i);
TextOut(hDC,0,200,string,strlen(string));
}
Sleep(5000);
// 使った後は、ちゃんと消去しましょう♪
DeleteDC(hDC);
}
画面上にゴミが残りまくりですがこれは、これで何かに使えるかも…。
これらの処理は、動作確認用のテスト処理に利用しています。
はっきり言って便利です♪
2009年8月3日----------------------
こんなやり方も見付けた…。
デバッグとかで「GetForegroundWindow」だと上手く行かない場合…
まあ、デバッガのハンドルを取得する場合なんかです…。
DOS窓のタイトルも分かればかなり限定できます。
// DOS窓のデバイスコンテキストを取得します。
hWnd = FindWindow( "ConsoleWindowClass", NULL );
hDC = GetDC( hWnd );
| 固定リンク
コメント