亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? visualfx.cpp

?? VC&Matlab混合編程實現(xiàn)無線電導(dǎo)航指示器
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
  ResizeTab();
  return 0;
}

// Handle resize
void TTabWnd::OnSize(UINT nType, int cx, int cy) 
{
  CWnd::OnSize(nType, cx, cy);
  ResizeTab(cx,cy);
}

// Create a CView derived class as a tab
TTabItem *TTabWnd::CreatePane(LPCTSTR lpszLabel, CRuntimeClass *pViewClass, 
                                 CCreateContext *pContext)
{
  CRect rect, client;
  ASSERT(pViewClass && pContext);

  CWnd *pWnd = (CWnd*)pViewClass->CreateObject();
  if (!pWnd) 
    return NULL;
  
  GetClientRect(&client);
  rect.left = 0;
  rect.top = TABWND_HEIGHT+2;
  rect.right = client.right;
  rect.bottom = client.bottom;

  int dwStyle = AFX_WS_DEFAULT_VIEW;
  if (GetParent()->IsKindOf(RUNTIME_CLASS(CSplitterWnd))) {
    dwStyle &= ~WS_BORDER;
  }

  if (!pWnd->Create(NULL, NULL, dwStyle, rect, this, 13576+m_TabList.size(), pContext))
  {
    TRACE0("Warning: couldn't create client area for tab view\n");
    // pWnd will be cleaned up by PostNcDestroy
    return NULL;
  }

  // Insert new tab object into the list
  TTabItem *pTab = addTab(pWnd,lpszLabel);
  ASSERT(pTab);
  if (m_TabList.size() != 1) {
    pWnd->EnableWindow(FALSE);
    pWnd->ShowWindow(SW_HIDE);
  /*
  // Framework is responsible to set the active view
  } else {
    CWnd *pParent = GetParent();
    if (pParent->IsKindOf(RUNTIME_CLASS(CFrameWnd))) {
      ((CFrameWnd*)pParent)->SetActiveView((CView*)pWnd);
    } else if (pParent->IsKindOf(RUNTIME_CLASS(CSplitterWnd))) {
      ((CSplitterWnd*)pParent)->SetActivePane(0,0,pWnd);
    }
  */
  }
  return pTab;
}

// Create a splitter window as a tab
TTabItem *TTabWnd::CreatePane(LPCTSTR lpszLabel, int nRows, int nCols, 
                                 CWnd *pWnd, UINT nID)
{
  ASSERT(pWnd);
  ASSERT(pWnd->IsKindOf(RUNTIME_CLASS(CSplitterWnd)));

  // Moved to TVisualFramework to handle creation of CSplitterWnd derived classes
  //CSplitterWnd *pWnd = new CSplitterWnd;
  //if (!pWnd) 
  //  return NULL;

  int dwStyle = AFX_WS_DEFAULT_VIEW;
  dwStyle &= ~WS_BORDER;

  CSplitterWnd *pSplitter = (CSplitterWnd*)pWnd;
  if (!pSplitter->CreateStatic(this, nRows, nCols, dwStyle, nID)) {
    TRACE0("Warning: couldn't create client area for tab view\n");
    // pWnd will be cleaned up by PostNcDestroy
    return NULL;
  }

  TTabItem *pTab = addTab(pWnd,lpszLabel);
  ASSERT(pTab);
  if (m_TabList.size() != 1) {
    pWnd->EnableWindow(FALSE);
    pWnd->ShowWindow(SW_HIDE);
  } 

  /*
  // Framework will set the active view
  CWnd *paneWnd = pWnd->GetActivePane();
  if (paneWnd) {
    ((CFrameWnd*)GetParent())->SetActiveView((CView*)paneWnd);
  } else {
    paneWnd = pWnd->GetPane(0,0);
    pWnd->SetActivePane(0,0);
    ((CFrameWnd*)GetParent())->SetActiveView((CView*)paneWnd);
  }
  */

  return pTab;
}

//=============================================================================
// class TVisualObject
//
//=============================================================================

// Private constructor
TVisualObject::TVisualObject()
{
}

// Create a plain view
TVisualObject::TVisualObject(DWORD dwId, CCreateContext *pContext, 
                       CRuntimeClass *pClass)
{
  ASSERT(pContext);
  ASSERT(pClass);
  ASSERT(pClass->IsDerivedFrom(RUNTIME_CLASS(CView)));

  zeroAll();
  m_dwId = dwId;
  m_nObjectType = OT_VIEW;
  m_pContext = pContext;
  m_pRuntimeClass = pClass;
  checkStyle();
}

// Create a view within a tab window or a tab window
TVisualObject::TVisualObject(DWORD dwId, LPCTSTR szTitle, CCreateContext *pContext, 
                       CRuntimeClass *pClass, DWORD dwStyle)
{
  ASSERT(szTitle);
  ASSERT(pContext);
  ASSERT(pClass);

  zeroAll();
  m_dwId = dwId;
  if (pClass->IsDerivedFrom(RUNTIME_CLASS(TTabWnd))) {
    m_nObjectType = OT_TAB;
  } else if (pClass->IsDerivedFrom(RUNTIME_CLASS(CView))) {
    m_nObjectType = OT_TABVIEW;
  } else {
    ASSERT(FALSE);
  }
  m_strTitle = szTitle;
  m_pContext = pContext;
  m_pRuntimeClass = pClass;
  m_dwStyle = dwStyle;
  checkStyle();
}

// Create a splitter window
TVisualObject::TVisualObject(DWORD dwId, LPCTSTR szTitle, int nRows, int nCols, 
                       CCreateContext *pContext, DWORD dwStyle)
{
  ASSERT(szTitle);
  ASSERT(pContext);
  ASSERT(nRows);
  ASSERT(nCols);

  zeroAll();
  m_dwId = dwId;
  m_nObjectType = OT_SPLITTER;
  m_strTitle = szTitle;
  m_pContext = pContext;
  m_nRows = nRows;
  m_nCols = nCols;
  m_dwStyle = dwStyle;
  checkStyle();
}

// Create a view within a splitter window
TVisualObject::TVisualObject(DWORD dwId, int nRow, int nCol, CCreateContext *pContext, 
                       CRuntimeClass *pClass, CSize size, DWORD dwStyle)
{
  ASSERT(pContext);
  ASSERT(pClass);
  ASSERT(pClass->IsDerivedFrom(RUNTIME_CLASS(CView)) ||
         pClass->IsDerivedFrom(RUNTIME_CLASS(TTabWnd)));

  zeroAll();
  m_dwId = dwId;
  m_nObjectType = OT_SPLITTERVIEW;
  m_pContext = pContext;
  m_pRuntimeClass = pClass;
  m_nRowIndex = nRow;
  m_nColIndex = nCol;
  m_Size = size;
  m_dwStyle = dwStyle;
  checkStyle();
}

// Create a splitter within a splitter window
TVisualObject::TVisualObject(DWORD dwId, int nRow, int nCol, int nRows, int nCols, 
                       CCreateContext *pContext, DWORD dwStyle)
{
  ASSERT(pContext);
  ASSERT(nRows);
  ASSERT(nCols);

  zeroAll();
  m_dwId = dwId;
  m_nObjectType = OT_SPLITTERSPLITTER;
  m_pContext = pContext;
  m_nRowIndex = nRow;
  m_nColIndex = nCol;
  m_nRows = nRows;
  m_nCols = nCols;
  m_dwStyle = dwStyle;
  checkStyle();
}

TVisualObject::TVisualObject(const TVisualObject& obj)
{
  zeroAll();
  *this = obj;
}

TVisualObject::~TVisualObject()
{
  if (m_hIcon) {
    ::DestroyIcon(m_hIcon);
    m_hIcon = NULL;
  }
}

TVisualObject& TVisualObject::operator=(const TVisualObject& obj)
{
  // No need to copy m_ObjectList since it is populated after
  // this code is executed in STL container
  m_nObjectType = obj.m_nObjectType;
  m_dwId = obj.m_dwId;
  m_pWnd = obj.m_pWnd;
  m_pParent = obj.m_pParent;
  m_strTitle = obj.m_strTitle;
  m_nRows = obj.m_nRows;
  m_nCols = obj.m_nCols;
  m_nRowIndex = obj.m_nRowIndex;
  m_nColIndex = obj.m_nColIndex;
  m_pContext = obj.m_pContext;
  m_pRuntimeClass = obj.m_pRuntimeClass;
  m_Size = obj.m_Size;
  m_bEnabled = obj.m_bEnabled;
  m_dwStyle = obj.m_dwStyle;
  m_cHotKey = obj.m_cHotKey;
  m_hIcon = obj.m_hIcon;
  m_pOwner = obj.m_pOwner;
  m_pFramework = obj.m_pFramework;
  return *this;
}

void TVisualObject::zeroAll(void)
{
  // No need to zero m_ObjectList since it is already empty
  m_nObjectType = OT_UNKNOWN;
  m_dwId = 0;
  m_pWnd = NULL;
  m_pParent = NULL;
  m_strTitle = _T("");
  m_nRows = 0;
  m_nCols = 0;
  m_nRowIndex = 0;
  m_nColIndex = 0;
  m_pContext = NULL;
  m_pRuntimeClass = NULL;
  m_Size = CSize(0,0);
  m_bEnabled = TRUE;
  m_dwStyle = 0;
  m_cHotKey = 0;
  m_pOwner = NULL;
  m_pFramework = NULL;
  m_hIcon = NULL;
}

// Check if style is valid
void TVisualObject::checkStyle(void)
{
  if ((m_dwStyle & TOS_TABTOP) || (m_dwStyle & TOS_TABBOTTOM)) {
    ASSERT(m_pRuntimeClass);
    // Tab position valid only for tab window derived classes
    ASSERT(m_pRuntimeClass->IsDerivedFrom(RUNTIME_CLASS(TTabWnd)));
  }
  if (m_dwStyle & TOS_SELECTED) {
    // Selected valid only for tab panes that are not splitters and tabs
    // In this case, use TVisualFramework::SetActivePane() to set the active pane
    // once the framework is created
    if (m_pRuntimeClass == NULL) {
      // Splitters canot be dynamically create (m_pRuntimeClass is NULL)
      ASSERT((m_nObjectType != OT_SPLITTER) && (m_nObjectType != OT_SPLITTERVIEW));
    } else {
      ASSERT(!m_pRuntimeClass->IsDerivedFrom(RUNTIME_CLASS(TTabWnd)));
    }
  }
}

// Delete the window pointer and optionally destroy the window
void TVisualObject::Destroy(BOOL bDestroyWindow)
{
  if (m_pWnd) {
    if (bDestroyWindow)
      m_pWnd->DestroyWindow();
    delete m_pWnd;
    m_pWnd = NULL;
  }
}

// If this object is a tab window or splitter window that it 
// cannot be focused
BOOL TVisualObject::CanFocus(void)
{
  ASSERT(m_pWnd);

  if (m_pWnd->IsKindOf(RUNTIME_CLASS(CSplitterWnd)) ||
      m_pWnd->IsKindOf(RUNTIME_CLASS(TTabWnd)))
  {
    return FALSE;
  }
  return TRUE;
}

// Set hot key for this tab object
void TVisualObject::SetHotKey(CHAR cHotKey)
{
  m_cHotKey = cHotKey;
}

// Optional: Set description 
void TVisualObject::SetDescription(LPCTSTR szDesc)
{
  m_strDescription = szDesc;
}

// Optional: Set icon for tab and load it from the resource
BOOL TVisualObject::SetIcon(UINT nIconId)
{
  // Cannot specify icon if already specified
//  if (m_hIcon)
//    return FALSE;

  // Load icon if possible
  if (nIconId == 0) {
    m_hIcon = NULL;
  } else {
    m_hIcon = (HICON)::LoadImage(::AfxGetResourceHandle(), 
                        MAKEINTRESOURCE(nIconId), 
                        IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR);
    if (m_hIcon == NULL)
      return FALSE;
  }
  return TRUE;
}

// Optional: Return icon handle for tab
HICON TVisualObject::GetIcon(void)
{
  return m_hIcon;
}

// Set this object as active pane
BOOL TVisualObject::SetActivePane(void)
{
  ASSERT(m_pFramework);
  return m_pFramework->SetActivePane(this);
}

// Set this tab to be active tab (not the active pane)
BOOL TVisualObject::SetActiveTab(void)
{
  ASSERT(m_pFramework);
  return m_pFramework->SetActiveTab(this);
}

// Enable/disable this object
BOOL TVisualObject::Enable(BOOL bEnable)
{
  ASSERT(m_pFramework);
  return m_pFramework->Enable(this,bEnable);
}

// Enable/disable tab
BOOL TVisualObject::EnableTab(BOOL bEnable)
{
  ASSERT(m_pFramework);
  return m_pFramework->EnableTab(this,bEnable);
}

// SHow/hide this object
BOOL TVisualObject::ShowTab(BOOL bShow)
{
  ASSERT(m_pFramework);
  return m_pFramework->ShowTab(this,bShow);
}

// Is this object enabled
BOOL TVisualObject::IsEnabled(BOOL& bEnabled)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsEnabled(this,bEnabled);
}

// Is this object enabled
BOOL TVisualObject::IsTabEnabled(BOOL& bEnabled)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsTabEnabled(this,bEnabled);
}

// Is this object visible
BOOL TVisualObject::IsTabVisible(BOOL& bVisible)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsTabVisible(this,bVisible);
}

// Returns TRUE if this object is a tab within a tab window
BOOL TVisualObject::IsTabPane(void)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsTabPane(this);
}

// Returns TRUE if this object is a tab window
BOOL TVisualObject::IsTabWindow(void)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsTabWindow(this);
}

// Returns TRUE if this object is a pane within a splitter window
BOOL TVisualObject::IsSplitterPane(void)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsSplitterPane(this);
}

// Returns TRUE if this object is a splitter window
BOOL TVisualObject::IsSplitterWindow(void)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsSplitterWindow(this);
}

// Returns TRUE if this object is derived from CView 
BOOL TVisualObject::IsView(void)
{
  ASSERT(m_pFramework);
  return m_pFramework->IsView(this);
}

// Get object ID
#ifdef _DEBUG
DWORD TVisualObject::GetID(void)
{
  return m_dwId;
}
#endif

// Get object window
#ifdef _DEBUG
CWnd *TVisualObject::GetWnd(void)
{
  return m_pWnd;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美绝品在线观看成人午夜影视| 国内精品视频一区二区三区八戒| 91在线国产福利| 国产精品欧美极品| 94色蜜桃网一区二区三区| 国产精品久久毛片a| 99re这里只有精品视频首页| 一区二区三区在线免费播放| 欧美日韩专区在线| 日本欧美一区二区在线观看| 日韩欧美亚洲国产另类| 国产综合色视频| 中文字幕 久热精品 视频在线| 一本大道久久精品懂色aⅴ| 亚洲精品乱码久久久久久久久| 欧美日韩视频一区二区| 另类综合日韩欧美亚洲| 国产亚洲欧美日韩日本| 97se狠狠狠综合亚洲狠狠| 亚洲午夜精品一区二区三区他趣| 日韩一区和二区| av在线不卡电影| 亚洲午夜在线电影| 欧美成人精品3d动漫h| 丁香天五香天堂综合| 亚洲成人免费影院| 久久五月婷婷丁香社区| 在线一区二区视频| 狠狠网亚洲精品| 亚洲美女视频在线| 日韩精品专区在线影院重磅| 成人免费看片app下载| 天天影视涩香欲综合网| 中文无字幕一区二区三区| 欧美日精品一区视频| 国产精品亚洲午夜一区二区三区| 亚洲另类中文字| 久久先锋影音av鲁色资源| 欧美在线观看视频一区二区三区| 狠狠色丁香婷综合久久| 亚洲精品成a人| 久久久精品黄色| 91麻豆精品91久久久久同性| 成人高清在线视频| 美女脱光内衣内裤视频久久影院| 亚洲欧洲性图库| 精品久久久久久久久久久久久久久| 91伊人久久大香线蕉| 黑人巨大精品欧美黑白配亚洲| 亚洲一区av在线| 最新日韩av在线| 久久久噜噜噜久久人人看| 宅男噜噜噜66一区二区66| 色婷婷亚洲婷婷| 国产999精品久久久久久绿帽| 天天综合天天做天天综合| 亚洲欧美在线aaa| 国产清纯在线一区二区www| 精品剧情在线观看| 欧美日韩精品一区二区三区蜜桃| 成人av动漫网站| 国产精品中文字幕日韩精品| 美女www一区二区| 亚州成人在线电影| 亚洲日本va在线观看| 国产精品久久久久久久久搜平片| 精品国产麻豆免费人成网站| 欧美精品自拍偷拍动漫精品| 欧美亚洲综合色| 91久久香蕉国产日韩欧美9色| 成人午夜伦理影院| 国产精品中文字幕欧美| 国产一区激情在线| 久久精品国产99国产| 午夜精品一区二区三区电影天堂| 一级中文字幕一区二区| 亚洲精品日日夜夜| 自拍偷拍国产精品| 日韩一区有码在线| 日韩理论片在线| 亚洲精品免费一二三区| 一区二区在线观看免费视频播放| 亚洲免费观看在线视频| 亚洲欧美国产毛片在线| 亚洲精品视频一区| 亚洲一区二区精品视频| 天天亚洲美女在线视频| 日本不卡在线视频| 精品一区二区久久久| 国产精品一区二区不卡| 高清在线观看日韩| 不卡视频一二三| 91在线高清观看| 欧美日韩综合一区| 日韩女优视频免费观看| 久久综合久久久久88| 国产视频亚洲色图| 国产精品不卡在线| 亚洲国产一区在线观看| 日韩av电影免费观看高清完整版在线观看| 日本不卡在线视频| 国产精品一区二区久久不卡 | 亚洲人成小说网站色在线| 亚洲视频在线观看一区| 亚洲一区在线视频| 热久久久久久久| 粉嫩aⅴ一区二区三区四区五区| 99久久久久久99| 在线播放欧美女士性生活| 精品黑人一区二区三区久久 | 亚洲图片你懂的| 无码av免费一区二区三区试看| 美腿丝袜在线亚洲一区| 成人一区在线观看| 91黄色免费观看| 精品国精品自拍自在线| 国产精品国产三级国产普通话99| 亚洲国产aⅴ天堂久久| 国产制服丝袜一区| 色菇凉天天综合网| 久久久天堂av| 亚洲一区二区三区四区五区黄| 国产一区 二区| 欧美网站一区二区| 久久精品视频一区二区三区| 亚洲 欧美综合在线网络| 国产精品538一区二区在线| 欧美午夜寂寞影院| 国产日韩欧美高清在线| 午夜精品久久久久久| 成人激情电影免费在线观看| 欧美一二三四区在线| 亚洲九九爱视频| 国产成人啪免费观看软件| 精品视频在线免费看| 国产欧美日韩卡一| 美女精品一区二区| 91久久一区二区| 国产精品久久久久久久久快鸭| 日日摸夜夜添夜夜添国产精品 | 日本中文一区二区三区| av中文字幕亚洲| 久久久久久日产精品| 日本美女一区二区| 在线亚洲欧美专区二区| 亚洲国产成人一区二区三区| 奇米色一区二区| 在线视频一区二区免费| 亚洲视频一二三| 国产91在线看| 久久精品人人做人人爽人人 | 黑人精品欧美一区二区蜜桃 | 一本色道亚洲精品aⅴ| 国产亚洲欧美激情| 欧美aaaaaa午夜精品| 欧美伦理视频网站| 一区二区三区电影在线播| www.99精品| 国产精品网站一区| 国产成人av影院| 久久久精品黄色| 国产呦萝稀缺另类资源| 精品卡一卡二卡三卡四在线| 免费人成在线不卡| 欧美日韩高清在线| 午夜精品在线看| 91精品国产麻豆国产自产在线 | 亚洲视频一区二区免费在线观看| 国产成人亚洲精品狼色在线| 久久九九久精品国产免费直播| 久久99热这里只有精品| 欧美电视剧免费全集观看| 天堂在线亚洲视频| 337p亚洲精品色噜噜狠狠| 午夜国产不卡在线观看视频| 欧美久久久久久蜜桃| 日韩精品一区第一页| 91麻豆精品91久久久久久清纯| 天天综合色天天综合色h| 91.xcao| 美女mm1313爽爽久久久蜜臀| 精品福利一二区| 国产成人在线网站| 国产精品国产自产拍高清av王其| 91亚洲国产成人精品一区二三| 亚洲免费观看高清完整版在线 | 欧美少妇bbb| 视频一区二区不卡| 精品国产乱码91久久久久久网站| 黄网站免费久久| 国产精品视频免费看| 色偷偷成人一区二区三区91 | 91精品国产色综合久久不卡电影| 免费看欧美美女黄的网站| 精品sm在线观看| 91最新地址在线播放| 午夜一区二区三区在线观看| 欧美mv和日韩mv的网站| 丁香婷婷综合网| 午夜精品视频在线观看|