| 
    
     |  | ▼みそじのおじさん さん: みなさん こんにちわ。
 
 > 私のようなアプリ系のソフトを作るのは本当は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でも作成して使用することを考えて
 しまいました。
 
 
 |  |