ダイアログを表示するには

解決


まちゃはげ  2004-05-10 02:12:07  No: 53605

MFC VC++6.0 のダイアログベースで作成したプログラム(MSHFlexGridを用いている)において、あるPCではダイアログを表示することができるのに、他のPCではダイアログを表示することができません。理由がわからずに困っています。
ソースを以下に示します。
BOOL CDefXApp::InitInstance()
{
  AfxEnableControlContainer();

#ifdef _AFXDLL
  Enable3dControls();
#else
  Enable3dControlsStatic();
#endif

  CDefXDlg dlg;

  m_pMainWnd = &dlg;
  int  nResponse = dlg.DoModal();
  if ( nResponse ) {
      int    r = GetLastError();
  }

  if (nResponse == IDOK) {
  }
  else if (nResponse == IDCANCEL) {
  }
  return FALSE;
}

nResponse では-1が返り  r = GetLastError() では0が返ります。
ダイアログを表示させるにはどうすればよいでしょうか?
よろしくお願いします。


まちゃはげ  2004-05-10 05:01:11  No: 53606

追加です。
ダイアログが表示された方のPCでプログラムソースを開き、リソースからダイアログを開くと、MSHFlexGridの部分が表示できました。
しかし、ダイアログが表示されなかった方のPCでは、上記と同様に、リソースからダイアログを開くと、"ActiveXコントロール"{0ECD 〜 }"はこのコンピュータ上に登録されていません.コントロールを再登録してから再度実行してください"というメッセージが出ました。OKボタンを押すと、MSHFlexGridの部分に"ActiveXコントロール"とだけ表示されておりました。
原因はActiveXコントロールを登録していないせいではないかと考えられますが、いまいち自信がないのと、登録の仕方がわかりません。ご教授のほどよろしくお願いいたします。


まちゃはげ  2004-05-10 23:25:35  No: 53607

自己レスです。
MSHFlexGridを登録するには、VC++6.0だけではなく、VBもインストールしなければなりませんでした。
わけわからなくてすみません。
解決です。


なんかいよう  2005-08-22 19:36:58  No: 53608

先の「自己レス」にある  「VBもインストールしなければ」ですが、具体的にはどうすればインストール出来るのでしょうか?
  つまりVBがインストールされていない環境下でこのMSFlexGridをVC++6.0で使うのを可能にするにはどんな方法があるのでしょうか?
  具体的には、VC++に付属のInstallShield for Microsoft Visual C++ 6  でMSFLXGRD.OCXもしくはMSHFLXGD.OCXを一緒にインストールする様にしても、症状は変わらないです。
  ディストリビューションウイザードで作成したVBプログラムをインストールした後であれば、MSHFlexGridをVC++6.0で使用可能ですが、ユーザーに提供するプログラムの場合、全く関係のないVBプログラムをインストールしてくれとも言えないですし・・・。


ふもふも  2005-08-23 00:16:47  No: 53609

MSFLXGRD.OCXをwindowsのsystem32フォルダーなりにコピーして
コマンドプロンプトや、ファイル名を指定して実行で
Regsvr32 "x:\windows\system32\MSFLXGRD.OCX"
でOCXを登録すれば使用可能になりませんか?

InstallShield での登録方法は分かりません。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加