=================================================================== RCS file: /home/cvs/OpenXM_contrib2/windows/asir32gui/asir32guiview.cpp,v retrieving revision 1.22 retrieving revision 1.28 diff -u -p -r1.22 -r1.28 --- OpenXM_contrib2/windows/asir32gui/asir32guiview.cpp 2009/03/09 15:48:43 1.22 +++ OpenXM_contrib2/windows/asir32gui/asir32guiview.cpp 2013/08/07 07:54:16 1.28 @@ -33,7 +33,7 @@ void loadfile(char *); void put_line(char *); void send_intr(void); void insert_to_theView(char *); -void get_rootdir(char *,int,char *); +BOOL get_rootdir(char *,int,char *); extern int bigfloat, prtime, prresult; extern char *asir_libdir; extern int asirgui_kind; @@ -79,6 +79,11 @@ BEGIN_MESSAGE_MAP(CAsir32guiView, CEditView) ON_COMMAND(ID_SM1, OnSm1) ON_COMMAND(ID_TIGERS, OnTigers) ON_COMMAND(ID_TODOPARAMETRIZE, OnTodoparametrize) + ON_COMMAND(ID_NOROMATRIX, OnNoromatrix) + ON_COMMAND(ID_NOROMWL, OnNoromwl) + ON_COMMAND(ID_NNNDBF, OnNnndbf) + ON_COMMAND(ID_NOROPD, OnNoropd) + ON_COMMAND(ID_NSTWLG, OnNstwistedlog) //}}AFX_MSG_MAP // 標準印刷コマンド // ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint) @@ -104,6 +109,10 @@ CAsir32guiView::CAsir32guiView() Logfp = NULL; ResetIndex(); theView = this; +#if _MSC_VER > 1300 + /* VS2003.NET or later */ + (AfxGetApp())->EnableHtmlHelp(); +#endif } CAsir32guiView::~CAsir32guiView() @@ -368,6 +377,7 @@ void CAsir32guiView::OnChar(UINT nChar, UINT nRepCnt, // TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください char *exp_result; char tmp[BUFSIZ]; + int i; if ( asirgui_kind == ASIRGUI_MESSAGE ) { Beep(); return; @@ -431,6 +441,10 @@ void CAsir32guiView::OnChar(UINT nChar, UINT nRepCnt, tmp[0] = 0; put_line(tmp); return; + case CTRL('Y'): + Paste(); return; + case CTRL('I'): + return; default : if ( nChar >= 0x20 && nChar < 0x7f ) PutChar(nChar); @@ -489,12 +503,23 @@ void CAsir32guiView::OnFileOpen() } void CAsir32guiView::viewHtmlHelp(char *help) { + char *helpfile; + char fmt[] = "%s\\help\\%shelp.chm"; + char root[BUFSIZ],errmsg[BUFSIZ]; + get_rootdir(root,sizeof(root),errmsg); + helpfile = (char *)malloc(sizeof(fmt) + strlen(root) + strlen(help)); + sprintf(helpfile,fmt,root,help); #if _MSC_VER < 1300 /* Visual C++ 6.0 */ - char root[BUFSIZ],errmsg[BUFSIZ], helpfile[BUFSIZ]; - get_rootdir(root,sizeof(root),errmsg); - sprintf(helpfile,"%s\\help\\%shelp.chm",root,help); ::HtmlHelp(NULL, helpfile, HH_DISPLAY_TOPIC, 0); +#else + CWinApp *top = AfxGetApp(); + top->SetHelpMode(AFX_HELP_TYPE::afxHTMLHelp); + if (top->m_pszHelpFilePath) { + free((void*)top->m_pszHelpFilePath); + } + top->m_pszHelpFilePath = helpfile; + HtmlHelp(HH_DISPLAY_TOPIC, 0); #endif } @@ -557,7 +582,7 @@ void CAsir32guiView::UpdateMetrics() void CAsir32guiView::OnFont() { // TODO: この位置にコマンド ハンドラ用のコードを追加してください - int ret; + INT_PTR ret; LOGFONT lf; GetFont()->GetLogFont(&lf); @@ -671,27 +696,59 @@ void CAsir32guiView::OnTodoparametrize() viewHtmlHelp("todo_parametrize"); } +void CAsir32guiView::OnNoromatrix() +{ + // TODO: この位置にコマンド ハンドラ用のコードを追加してください + viewHtmlHelp("noro_matrix"); +} + +void CAsir32guiView::OnNoromwl() +{ + // TODO: この位置にコマンド ハンドラ用のコードを追加してください + viewHtmlHelp("noro_mwl"); +} + +void CAsir32guiView::OnNoropd() +{ + // TODO: この位置にコマンド ハンドラ用のコードを追加してください + viewHtmlHelp("noro_pd"); +} + +void CAsir32guiView::OnNnndbf() +{ + // TODO: この位置にコマンド ハンドラ用のコードを追加してください + viewHtmlHelp("nn_ndbf"); +} + +void CAsir32guiView::OnNstwistedlog() +{ + // TODO: この位置にコマンド ハンドラ用のコードを追加してください + viewHtmlHelp("ns_twistedlog"); +} + BOOL CAsir32guiView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) { // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください BOOL ret = CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext); - FILE *fp = fopen("asirgui.hnd","w"); + FILE *fp = NULL; char *temp; + char rootdir[BUFSIZ], errmsg[BUFSIZ], hndname[_MAX_PATH]; - if ( fp ) { - fprintf(fp,"%d",(unsigned int)theView->m_hWnd); - fclose(fp); - if ( temp = getenv("TEMP") ) { - int len; - char *name; - - len = strlen(temp); - name = (char *)malloc(len+BUFSIZ); - sprintf(name,"%s\\asirgui.hnd",temp); - fopen(name,"w"); + if (get_rootdir(rootdir, BUFSIZ, errmsg)) { + sprintf(hndname, "%s\\bin\\asirgui.hnd", rootdir); + fp = fopen(hndname,"w"); + if ( fp ) { fprintf(fp,"%d",(unsigned int)theView->m_hWnd); fclose(fp); + } + } + if ( temp = getenv("TEMP") ) { + sprintf(hndname,"%s\\asirgui.hnd", temp); + fp = fopen(hndname,"w"); + if ( fp ) { + fprintf(fp,"%d",(unsigned int)theView->m_hWnd); + fclose(fp); } } return ret;