WIN32API: 実行ファイルのパスを取得
GetModuleFileName 関数を使います。
実行ファイルのフルパスが取れるので、実行ファイル名を取ってしまいましょう。
char filePath[MAX_PATH];
char *pt;
GetModuleFileName(ghInst, filePath, MAX_PATH);
pt = strrchr(filePath, '\\');
*pt = '\0';
GetModuleFileName 関数を使います。
実行ファイルのフルパスが取れるので、実行ファイル名を取ってしまいましょう。
char filePath[MAX_PATH];
char *pt;
GetModuleFileName(ghInst, filePath, MAX_PATH);
pt = strrchr(filePath, '\\');
*pt = '\0';
GetOpenFileName 関数を使います。
構造体に値を詰め込んで呼び出してあげればOK。
OPENFILENAME ofn;
char filePath[MAX_PATH] = "";
char fileName[MAX_PATH] = "";
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.lpstrFilter = "テキストファイル(*.txt)\0*.txt\0\0";
ofn.hwndOwner = hWnd;
ofn.lpstrFile = filePath;
ofn.lpstrFileTitle = fileName;
ofn.nMaxFile = MAX_PATH;
ofn.nMaxFileTitle = MAX_PATH;
ofn.Flags = OFN_FILEMUSTEXIST;
ofn.lpstrTitle = "データファイルを開く";
if (GetOpenFileName(&ofn)) {
・・・
※ lpstrFilter は「\0」で区切る。一番最後は「\0」2つ並べること。
リソースとしてexe内に取り込んだファイルを、実行時にファイルに書き出す方法です。
MCIコマンドでは「ファイル」しか取り扱えなかったので、
MP3ファイルを一旦リソースとして取り込んでおいて、
実行時にテンポラリフォルダにファイルを書き出し、再生するようにしました。
エクスプローラを外部プロセスとして呼び出すには、
ShellExecute(HWND_DESKTOP, "explore", FolderPah, NULL, NULL, SW_SHOWNORMAL);
とする。
フォルダ内の*.mp3ファイルを一括削除するには、
FindFirstFile() とFindNextFileを使ってループし、
DeleteFile() で削除する。
Win32APIの CreateFile ~ ReadFile でテキストファイルを読み込もうとしたけど、
1行ずつ読み込むのが出来ないっぽい。
MFCのクラスだったら何かあった気がする・・・CStdioFileだっけ?
なので、fgets を使います。
RECT rc;
SetRect(&rc, 20, 15, 520, 55);
これでウィンドウ上の矩形(くけい)を設定しておいて、
HDC hdc;
PAINTSTRUCT ps;
hdc = BeginPaint(hWnd, &ps);
SetTextColor(hdc, RGB(128, 128, 128)); // 文字色
DrawText(hdc, str, (int)strlen(str), &rc, DT_WORDBREAK);
EndPaint(hWnd, &ps);
設定ファイル(INIファイル)の中身はこんな感じのテキストファイルです。
[Section1]
Key1=value
Key2=value
このフォーマットのファイルの読み書きをしてくれる関数が便利。
Win32アプリケーションは、まず WinMain 関数からスタートします。
この関数の中でする主なことは、
1.ウィンドウクラスを登録する
2.ウィンドウを生成する。
3.メッセージループを作る。
このあたりは「決まり文句」的なもので、どのアプリケーションでもあまり変わりありません。
一度書いたものを雛形として使いまわすことになりそうですね。
以下、内部ではどんなことをしているのか、覚え書きしておきます。
「最初のWindowsプログラム」を打ち込んで、いざビルド!
と思ったらエラーが大量に・・・
《゚Д゚》 何故にーー!?
どうも、Visual Studio 2005 ではコンパイル時のチェックが厳しくなっている模様。
Computer / Internet | Computer / Java | Computer / VC++ | Computer / おすすめSoftware | Computer / 情報処理試験 | Computer / 玄箱でLinux | 読んだ本
Recent Comments