CMyCtrl* pMyCtrl = NULL;
pMyCtrl = this;
extern CMyCtrl* pMyCtrl;
CRect rt;
GetClientRect(rt); // 描画可能範囲を求める
// 描画用の座標系を設定
pDC->SetMapMode(MM_ANISOTROPIC); // マッピングモードを変える
pDC->SetWindowExt(2000, 2000); // 仮想的なWindowサイズの指定
pDC->SetViewportExt(rt.right, -rt.bottom); // ビューポートの指定
pDC->SetViewportOrg(rt.right/2, rt.bottom/2); // 原点の指定
// 描画用のペンやブラシを設定
CPen mypen(PS_SOLID, 1, RGB(0, 0, 255)); // 描画用のPENを作る
CPen* pen0 = pDC->SelectObject(&mypen); // 作ったPENをセット(現状を保存)
CBrush nullbrush;
nullbrush.CreateStockObject(NULL_BRUSH); // 透明ブラシを用意
CBrush* brush0 = pDC->SelectObject(&nullbrush); // 透明ブラシをセット(現状を保存)
// pDC->SetBkMode(TRANSPARENT); // 透明モードは効かなかった
// XY軸と楕円を描画
pDC->MoveTo(-1000,0); pDC->LineTo(1000,0); // X軸を表示
pDC->MoveTo(0,-1000); pDC->LineTo(0,1000); // Y軸を表示
pDC->Ellipse(-500,-500,500,500); // 楕円を描く
pDC->Ellipse(-1000,-1000,1000,1000); // 楕円を描く
// 後始末
pDC->SelectObject(pen0); // PENを元に戻す
pDC->SelectObject(brush0); // ブラシを元に戻す
pDC->SetMapMode(MM_ANISOTROPIC); // マッピングモードを変える
pDC->SetWindowExt(2000, 2000); // 仮想的なWindowサイズ指定
GetClientRect(rt); // 描画可能範囲を求める
pDC->SetViewportExt(rt.right, -rt.bottom); // ビューポートのサイズ指定(
pDC->SetWindowOrg(0,0); // 仮想座標系の原点
pDC->SetViewportOrg(rt.right/2, rt.bottom/2); // ビューポートの原点
protected:
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
CDialogBar m_wndDialogBar; // DialogBarのメンバ変数を追加する
// ダイアログバーの生成→最初にドッキングする場所も指定可能(この例では左側)
if(!m_wndDialogBar.Create(this, IDD_DIALOGBAR, WS_VISIBLE | CBRS_LEFT,
AFX_IDW_TOOLBAR))
{
TRACE0("Failed to create dialogbar\n");
return -1; // DialogBar作成失敗
}
EnableDocking(CBRS_ALIGN_ANY); // これは前の方でやってあれば不要
m_wndDialogBar.EnableDocking(CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT); // ドッキング可能な場所の指定
DockControlBar(&m_wndDialogBar); // これで実際にドッキングする?
m_wndDialogBar.SetWindowText("ControlPanel"); // フローティングになったときのタイトル
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
// メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
// この位置に生成されるコードを編集しないでください。
ON_WM_CREATE()
ON_EN_CHANGE(IDC_EDIT1,OnEnChange) // EditBoxの変更時のイベントを追加
ON_BN_CLICKED(IDC_BUTTON1,OnBnClicked) // マウスクリック時のイベントを追加
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
END_MESSAGE_MAP()
// 生成されたメッセージ マップ関数
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
// メモ - ClassWizard はこの位置にメンバ関数を追加または削除します。
// この位置に生成されるコードを編集しないでください。
afx_msg void OnEnChange(); // EditBox変更時に実行する関数を追加
afx_msg void OnBnClicked(); // マウスクリック時に実行する関数を追加
//}}AFX_MSG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame メッセージ ハンドラ
void CMainFrame::OnEnChange() // EditBox変更時に実行する関数を追加
{
}
void CMainFrame::OnBnClicked() // マウスクリック時に実行する関数を追加
{
}
Warning: no message line prompt for ID 0x03E9.
void CMainFrame::OnDialogbar() // 表示メニューのダイアログバー項目の処理
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
if( m_wndDialogBar.IsWindowVisible() )
ShowControlBar(&m_wndDialogBar, FALSE, FALSE);
else
ShowControlBar(&m_wndDialogBar, TRUE, FALSE);
}
void CMainFrame::OnUpdateDialogbar(CCmdUI* pCmdUI) // 表示メニュー→ダイアログバーの表示直前に呼ばれる
{
// TODO: この位置に command update UI ハンドラ用のコードを追加してください
pCmdUI->SetCheck(m_wndDialogBar.IsWindowVisible()); // メニュー項目にチェックを付ける
}
CDialogBarTestDoc* pDoc = GetDocument();
DialogBarTest\n\nDialog\n\n\nDialogBarTest.Document\nDialog Document
DialogBarTest\n\nDialog\nテキスト(.txt)\n.txt\nDialogBarTest.Document\nDialog Document
void CDialogBarTestDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: この位置に保存用のコードを追加してください。
}
else
{
// TODO: この位置に読み込み用のコードを追加してください。
UpdateAllViews(NULL);
}
}
while(ar.ReadString(line)) {
:
}
ar.WriteString(line);
ar >> line; // 読込み
ar << line; // 書込み
CFile *fp;
int flen,i;
BYTE fdata;
fp = ar.GetFile();
flen = fp->GetLength();
for (i=0; i<flen ;i++) {
ar >> fdata; // 1byte読む
}
ar.Read(&m_struct,sizeof(struct_name));
ar << fdata;
ar.Write(&m_struct,sizeof(struct_name));
CFile* pFile = ar.GetFile();
pFile->SeekToBegin();
CArchive arc( pFile, CARchive::load );
arc.ReadString( line );
arc.Close();
CDialogBarTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
#include "DialogBarTestDoc.h"
CDialogBarTestDoc* pDoc = (CDialogBarTestDoc*) GetActiveDocument();
CString line = pDoc->struct_name.data;
m_wndDialogBar.SetDlgItemText(IDC_EDIT1,line);
CMainFrame* pMainFrame;
CMainFrame::CMainFrame()
{
pMainFrame = this;
}
extern CMainFrame* pMainFrame;
#include "MainFrm.h"
void CMapViewView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CDialogBarTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CString line = pDoc->m_struct.data;
pMainFrame->m_wndDialogBar.SetDlgItemText(IDC_EDIT1,line);
}
void CMapViewView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
pMainFrame->dialogbar_update(); // 仮にdialogbar_updateという名前にする
}
void CMainFrame::dialogbar_update()
{
// Docのポインタを求めてから
CDialogBarTestDoc* pDoc = (CDialogBarTestDoc*) GetActiveDocument();
CString line = pDoc->m_mapheader.lot_no;
m_wndDialogBar.SetDlgItemText(IDC_EDIT1,line);
}
void CMapViewView::OnInitialUpdate()
{
//CView::OnInitialUpdate();
}