以下ソースコード
#define _CRT_SECURE_NO_DEPRECATE
#include <windows.h>
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpCmdLine,int nShowCmd)
{
ChangeWindowMode(TRUE);
SetOutApplicationLogValidFlag(FALSE);
SetWindowText("DxLib");
if(DxLib_Init() == -1) return(-1);
if(DxLib_Init() == -1) return(-1);
SetAlwaysRunFlag(TRUE);
SetDrawScreen(DX_SCREEN_BACK);
//クラスネーム
const char* SZ_CLASS_NAME = "ClassName";
WNDCLASSEX wc;
wc.cbClsExtra = 0;//////////////////////////////////////////////////// とりあえず0を指定すればOK
wc.cbSize = sizeof(WNDCLASSEX);// 構造体のサイズ
wc.cbWndExtra = 0;/////////////////////////////////////////////////// とりあえず0を指定すればOK
wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1);// 背景色を指定。
wc.hCursor = LoadCursor(hInst,IDC_ARROW);// マウスカーソルの指定。とりあえずこれを指定しておけばOK
wc.hIcon = NULL;// ウインドウの左上に表示されるアイコンの指定。とりあえずNULLでOK
wc.hIconSm = NULL;/////////////////////////////// とりあえずNULLでOK
wc.hInstance = hInst;// WinMainの第1引数HINSTANCEに指定したものを指定する
wc.lpfnWndProc = DefWindowProc;/////////////// ウインドウプロシージャを指定。とりあえずDefWindowProcでOK
wc.lpszClassName = SZ_CLASS_NAME;// ウインドウクラス名を指定。CreateWindowの第1引数に指定する
wc.lpszMenuName = NULL;//////////////////////// ウインドウメニューリソースを示す文字列か識別子を指定。とりあえずNULLでOK
wc.style = CS_DBLCLKS;// ウインドウのスタイルを指定
RegisterClassEx(&wc);
//登録したszClassNameより親となるオーバーラップウインドウの作成
HWND hWnd = CreateWindowEx(
WS_EX_TOOLWINDOW,
SZ_CLASS_NAME,/////////////////////////////////////////// WNDCLASSEX.lpszClassNameで指定した名前を指定する
"windowsテンプレート",// ウインドウタイトル
WS_BORDER|WS_SYSMENU,////////////// ウインドウスタイル。
CW_USEDEFAULT,CW_USEDEFAULT,//// 起点のX,Y座標指定
320,480,// 横幅と高さを指定
NULL,NULL,hInst,NULL//////////////////// 特に意味なし。左のように指定。
);
ShowWindow(hWnd,nShowCmd);
UpdateWindow(hWnd);
//親ウインドウの上に子ウインドウを作成
HWND hChild = CreateWindow(
"STATIC",////////////////// 種類:STATIC…文章を出力できる, EDIT…ユーザーからの入力を受け付ける
//"EDIT",///////////////////// 種類:STATIC…文章を出力できる, EDIT…ユーザーからの入力を受け付ける
"test",// 出力文字列
WS_CHILD|WS_VISIBLE,// ウインドウスタイルとりあえずWS_CHILD|WS_VISIBLEでOK
0,0,////////////////////////// 起点のX,Y座標
320,480,// 横幅と高さ
hWnd,/////////////////////// 親ウインドウのハンドル
(HMENU)100,// 子ウインドウのハンドルを任意に設定
hInst,/////////////////////// WinMainの第1引数に指定した変数を指定する
NULL// とりあえずNULLでOK
);
while(ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0){
ClsDrawScreen();
ScreenFlip();
}
DestroyWindow( (HWND)100); //子ウインドウを削除
DestroyWindow(hWnd); //親ウインドウを削除
DxLib_End();
return 0;
}もちろんDXライブラリが管理するウインドウを2つ作ることができるのならそれに越したことはないのですが、多重起動を許可してDxLib_Init()を2回呼んでもウインドウは1つしか生成されませんでした。
それと、STATICの背景を黒に、文字色を一行ごとに黄緑・水色の交互になるように変えたいのですがどうすればよいのでしょうか。
もっと良い方法があったりソースコードにまずい部分があれば教えてください。
ご教授よろしくおねがい致します。