C言語関係掲示板

過去ログ

No633 太字で出力

[戻る] [ホームページ]
No.6640

太字で出力
投稿者---レミ(2003/05/22 19:17:56)


printfで出力する文字を太字で表示するようにしたいのですが
どうすればいいでしょうか?
といいますか、MS-DOSで太字は見たことがないような気がします。
MS-DOSで太字で出力はできるのでしょうか?
よろしくお願い致します。

WindowsXP Pro
Visual C++ 6.0 SP5
Windows SDK 使用
#include <windows.h>
#include <stdio.h>

int main(void)
{
    HANDLE hStdout;
    WORD wAttributes;
    CONSOLE_SCREEN_BUFFER_INFO csbi;//構造体

    hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
    //hStdoutのコンソールスクリーンバッファ情報をcsbiに取得
    GetConsoleScreenBufferInfo(hStdout, &csbi);

    wAttributes = 14;
    SetConsoleTextAttribute(hStdout, wAttributes);
    printf("wAttributes = %d\n", wAttributes);

    SetConsoleTextAttribute( hStdout, csbi.wAttributes);

    return 0;
}




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:太字で出力 6646 ともじ 2003/05/22 23:04:09


No.6646

Re:太字で出力
投稿者---ともじ(2003/05/22 23:04:09)


こんばんは。

>printfで出力する文字を太字で表示するようにしたいのですが
>どうすればいいでしょうか?
>といいますか、MS-DOSで太字は見たことがないような気がします。
>MS-DOSで太字で出力はできるのでしょうか?
>よろしくお願い致します。
>
>WindowsXP Pro
>Visual C++ 6.0 SP5
>Windows SDK 使用

エスケープシーケンスを使うとprintfで出力した文字を太字にすることが
可能ですが、XP Visual C++ の環境では文字の属性を変更するエスケープ
シーケンスはサポートされていません。
#include <stdio.h>

int main(void)
{
    printf("通常の表示\n");
    printf("\x1b[1m");
    printf("太字の表示\n");
    printf("\x1b[0m");
    printf("通常の表示\n");
    
    return 0;
}

XPの環境でも、LSICなどのMS-DOS系のC言語を使うと上記のプログラムで
printfで出力した文字を太字にすることが可能ですが、CONFIG.NT を
書き替える必要があります。

この辺のところは、過去ログの
http://f1.aaa.livedoor.jp/~pointc/log137.html
を参照してください。

でも、Windows SDK 使用ということであれば、有名なこちらのサイトを
ご参考に文字属性を変えたほうがいいかもしれません。
http://www.kumei.ne.jp/c_lang/sdk/sdk_27.htm
サンプルプログラムはそのままではビルドできないようですので、
http://www.kumei.ne.jp/c_lang/setvc.htm
も参考にした方がよいかもしれません。
(すみません。ビルドは試していません。)



この投稿にコメントする

削除パスワード

No.6648

Re:太字で出力
投稿者---レミ(2003/05/22 23:25:35)


ともじさん お返事ありがとうございます。
これから紹介して頂いたHPに行ってみます。
ありがとうございました。



この投稿にコメントする

削除パスワード