APIで背景の色?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
遠藤

APIで背景の色?

#1

投稿記事 by 遠藤 » 16年前

WindowsAPIを使いフリーソフトを作ろうかと考えています。
添付した中にあります右の画像が現在の私が作れたものです。
左が本についていたものになります。
左の背景見たく灰色?にしたいのですがソースの何処を変えればいいのでしょうか・・・?

また日曜~月曜までボタンを作り
それぞれに10文字程度のメモ欄を5個づつ持たせようと
しているのですがソースの書く場所がどこにすればよいのかがわかりません><

ランド

Re:APIで背景の色?

#2

投稿記事 by ランド » 16年前

背景については、ウィンドウクラスを登録する箇所に
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
とあるので、WHITE_BRUSHを所定の灰色のブラシに変更するとお望みの結果になるかと。
GRAY_BRUSH?の他にも灰色が何種類かあったと思いますので、調べてみてください。

スレ

Re:APIで背景の色?

#3

投稿記事 by スレ » 16年前

調べてみたのですが添付したツールの灰色はないようです・・・。

ランド

Re:APIで背景の色?

#4

投稿記事 by ランド » 16年前

すみません、無い場合を考慮していませんでした。
CreateSolidBrush関数でブラシを作成できますので、そちらを利用してみて下さい。
RGB(210,210,210)あたりがそれらしく見えましたが、具体的なRGBの数値は見つけられませんでした。

画像ツールにてRGB数値を抽出しても明度の有無で違った雰囲気に・・・

スレ

Re:APIで背景の色?

#5

投稿記事 by スレ » 16年前

なるほど・・・
調べていたらダイアログボックス?みたいなのでも作れることを調べたのですが
フリーソフトなどのツール制作は
こちらでやるのが一般的なのでしょうか?

lbfuvab

Re:APIで背景の色?

#6

投稿記事 by lbfuvab » 16年前

wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
          ↓
wc.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
で無理ですか?

toyo

Re:APIで背景の色?

#7

投稿記事 by toyo » 16年前

ダイアログですね
ダイアログリソース作って表示するのが簡単です
ちょっと作ってみました

遠藤

Re:APIで背景の色?

#8

投稿記事 by 遠藤 » 16年前

toyoさん
それです><

ダイアログリソースってどうやって描画するのでしょうか?

やはり私が作ったもの?はいらないんでしょうか?

またメモ書きをテキストなどに吐き出したいのですができますでしょうか?

質問ばかりですいません><

遠藤

Re:APIで背景の色?

#9

投稿記事 by 遠藤 » 16年前

私もダイアログリソース作ってみました・・・
これであってるのでしょうか・・・?

toyo

Re:APIで背景の色?

#10

投稿記事 by toyo » 16年前

それでいいですよ
有料版のVisual C++ならリソースエディタがついてるのでそれで作れます
無料版にはリソースエディタがないのですがフリーのリソースエディタがあるのでそれを使っても作れます
中身は普通のテキストなので頑張ればメモ帳でも作れますが

私は粂井さんの「猫でもわかる」のサイトを参考にさせてもらっています。
http://www.kumei.ne.jp/c_lang/sdk/sdk_14.htm
http://www.kumei.ne.jp/c_lang/sdk/sdk_22.htm

遠藤

Re:APIで背景の色?

#11

投稿記事 by 遠藤 » 16年前

返信ありがとうございます。

サイトを見ながら作ったのですがエラーが起こります・・・。

またクリックすると項目が変わりテキスト欄に入れた文字を吐き出したり
自動的に書き込んだりできるようにしたいです。

どのようにかけばいいのでしょうか?

遠藤

Re:APIで背景の色?

#12

投稿記事 by 遠藤 » 16年前

上記から少し変えたものです。
エラーはなくなったのですが表示ができないです・・・。

またダイアログでのイベントの取得方法(ボタンをクリックしたら~など)がわからないです・・・。

toyo

Re:APIで背景の色?

#13

投稿記事 by toyo » 16年前

main.cppを以下のように換えてみてください
#include <windows.h>
#include "resource.h"

LRESULT CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,
                   LPSTR lpsCmdLine, int nCmdShow)
{
    DialogBox(hCurInst, MAKEINTRESOURCE(MYDIALOG1), NULL, (DLGPROC)DlgProc);
    return 0;
}

LRESULT CALLBACK DlgProc(HWND hDlg, UINT msg, WPARAM wp, LPARAM lp)
{
    TCHAR buf[256];
    switch (msg) {
        case WM_INITDIALOG:
            return TRUE;
        case WM_COMMAND:
            switch (LOWORD(wp))
            {
            case IDOK1: // 日曜ボタンをクリックしたときの処理
                return TRUE;
            case IDCANCEL: // ×で閉じるときの処理
                //エディットボックスの内容は以下のようにして取得
                GetWindowText(GetDlgItem(hDlg, IDC_EDIT5), buf, 256);
                //確認用に表示してみる
                MessageBox(hDlg, buf, TEXT("TEXT5"), MB_OK);
                EndDialog(hDlg, IDCANCEL);
                return TRUE;
            }
            break;
    }
    return FALSE;
}

遠藤

Re:APIで背景の色?

#14

投稿記事 by 遠藤 » 16年前

toyoさん
回答本当にありがとうございます。

コピペさせていただきました。

しかし起動すると月曜が選ばれている?状態になってしまいます。
これを、できれば起動した日にちの曜日にクリックを合わせたいです。

また、ファイルを読み込んだり、書きだしたりはテキスト等で吐き出そうとしているのですが
GetWindowText(GetDlgItem(hDlg, IDC_EDIT5), buf, 256);
で取得したものをどうすればよいのかがわかりません。

選択されている曜日によって表示したり書き換えたりする内容を変えたいです。
自分用のテレビ欄?を保存できるツールをつくりたいんです。

お時間がありましたら一度作っていただけないでしょうか?
もちろん甘いことを言っているのは承知ですので
気が向きましたらでかまいません。

toyo

Re:APIで背景の色?

#15

投稿記事 by toyo » 16年前

年月日の表示とボタンにフォーカスまで作ってみました
リソースファイルとヘッダを一部変えています
ファイルの書き込みは普通に
fp = fopen("memo.txt", "w");
fputs(buf);
fclose(fp);
みたいなのでいいのでは

遠藤

Re:APIで背景の色?

#16

投稿記事 by 遠藤 » 16年前

遅れてすいません

toyoさんありがとうございました。

少し自分で改造してみますねw

閉鎖

“C言語何でも質問掲示板” へ戻る