« エマ 10巻 | トップページ | デジタルオーディオプレーヤーKANA-D »

2008年4月30日 (水)

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 );

|

« エマ 10巻 | トップページ | デジタルオーディオプレーヤーKANA-D »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: DOS窓のデバイスコンテキスト取得!:

« エマ 10巻 | トップページ | デジタルオーディオプレーヤーKANA-D »