|
▼みそじのおじさん さん:
みなさん こんにちわ。
> 私のようなアプリ系のソフトを作るのは本当はVBの方がいいんですよね?
そうですね。VBでもその他でも開発言語が良いですね。
>一度VB2008の評価版をダウンしたのですが、インストールができず...VBA
>で作っていたしだいです。VBならformのイベントにForm_Paintってあるん
>ですもんね? このイベントがあれば、再描画がもう少し楽だったのでは と
>思いました。あーVBが欲しいです...
インストールが出来ないって、OSの都合?、会社が許さない?OSなら
2005はWin2000からOKですよ。
私も初心者れべるのC++ですが、簡単に描画だけなら出来ました。
保存も、Webで検索すればサンプルか、情報はありますし。
C++2008Expressのただの奴でやってみたら、たったこれだけですよ。
下記意外にちょっと宣言とかは必要ですが、
コマンドラインでファイルのパスを渡し、そのファイルから
データを処理して描画させても描画だけと言う点なら、簡単です。
文字列を処理して、計算するのが面倒ですけどね。
自動的に作成される雛形にちょっと追加するだけです。
CALLBACK WndProcに以下を追加
// 選択されたメニューの解析:
switch (wmId)
{
case IDM_DRAWLINE: //このcase句追加
DrawFlg = !DrawFlg; //フラグは別途用意。
GetClientRect(hWnd,&rc);
InvalidateRect(hWnd,&rc,TRUE); //更新リージョン指定
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 描画コードをここに追加してください...
if (DrawFlg==TRUE){ //このif句追加
DrawLines(hWnd,hdc);
}
EndPaint(hWnd, &ps);
break;
//コマンドラインで渡されたパスのデータを処理する関数作成必要
//描画させる関数これは作成必要
//(以下は例でクライアントウィンドウに×を引くだけ)
int DrawLines(HWND hOwner,HDC hdc){
RECT rc;
BOOL bret = GetClientRect(hOwner,&rc);
MoveToEx(hdc, rc.right, rc.top, NULL);
LineTo(hdc, rc.left, rc.bottom);
MoveToEx(hdc, rc.left, rc.top, NULL);
LineTo(hdc, rc.right, rc.bottom);
return 0;
}
VB,C#、C++、どれでやってもVBAでやるよりは楽に出来ると思いますね。
ちなみに、私なら作成されているソフトを全部書き直すと大変なので、
ご質問の描画関係だけ、exeでも、dllでも作成して使用することを考えて
しまいました。
|
|