源码:
菜单项
void CMainFrame::OnAppendMenu() { // TODO: Add your command handler code here //获取主菜单 CMenu* pMenu=GetMenu(); //获取子菜单 CMenu *pSubMenu=pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount()==4) { //在菜单末端添加菜单项 pSubMenu->AppendMenu(MF_STRING,ID_TEST_MENU,_T("新菜单")); //重画菜单 DrawMenuBar(); } } void CMainFrame::OnDeleteMenu() { // TODO: Add your command handler code here CMenu* pMenu=GetMenu(); CMenu* pSubMenu=pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount()==5) { pSubMenu->DeleteMenu(4,MF_BYPOSITION); DrawMenuBar(); } } void CMainFrame::OnRemoveMenu() { // TODO: Add your command handler code here CMenu* pMenu=GetMenu(); CMenu* pSubMenu=pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount()==5) { pSubMenu->RemoveMenu(4,MF_BYPOSITION); DrawMenuBar(); } } void CMainFrame::OnInsertMenu() { // TODO: Add your command handler code here CMenu* pMenu=GetMenu(); CMenu* pSubMenu=pMenu->GetSubMenu(4); if (pSubMenu->GetMenuItemCount()==4) { //在指定的位置添加菜单项 pSubMenu->InsertMenu(2,MF_BYPOSITION,ID_TEST_MENU,_T("Insert菜单项")); DrawMenuBar(); } } void CMainFrame::OnMenuDlg() { dlg.DoModal(); } void CMainFrame::OnMenuTest1() { m_bEnable1=FALSE; m_bEnable2=TRUE; } void CMainFrame::OnMenuTest2() { m_bEnable1=TRUE; m_bEnable2=FALSE; } void CMainFrame::OnUpdateMenuTest1(CCmdUI* pCmdUI) { //启用或者禁用菜单 pCmdUI->Enable(m_bEnable1); } void CMainFrame::OnUpdateMenuTest2(CCmdUI* pCmdUI) { pCmdUI->Enable(m_bEnable2); }
光标:
void CMenuView::OnDraw(CDC* pDC) { /* CMenuDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here*/ ////////////////////////////////////////////////////////////////////////// /* //获取客户光标座标 CRect rect; GetClientRect(&rect); //绘制十字光标 pDC->MoveTo(0,m_point.y); pDC->LineTo(rect.Width(),m_point.y); pDC->MoveTo(m_point.x,0); pDC->LineTo(m_point.x,rect.Height()); //输出光标座标 CString strText=_T(""); strText.Format(_T("%d,%d"),m_point.x,m_point.y); pDC->SetBkMode(TRANSPARENT); pDC->SetTextAlign(TA_RIGHT|TA_BOTTOM); pDC->TextOut(m_point.x,m_point.y,strText); ////////////////////////////////////////////////////////////////////////// */ CRect rect; GetClientRect(rect); CRect rect2; rect2.left=rect.left+rect.Width()/4; rect2.right=rect.right-rect.Width()/4; rect2.top=rect.top+rect.Height()/4; rect2.bottom=rect.bottom-rect.Height()/4; //绘制光标的移动范围 pDC->Rectangle(rect2); } ///////////////////////////////////////////////////////////////////////////// // CMenuView printing BOOL CMenuView::OnPreparePrinting(CPrintInfo* pInfo) { // default preparation return DoPreparePrinting(pInfo); } void CMenuView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add extra initialization before printing } void CMenuView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) { // TODO: add cleanup after printing } ///////////////////////////////////////////////////////////////////////////// // CMenuView diagnostics #ifdef _DEBUG void CMenuView::AssertValid() const { CView::AssertValid(); } void CMenuView::Dump(CDumpContext& dc) const { CView::Dump(dc); } CMenuDoc* CMenuView::GetDocument() // non-debug version is inline { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMenuDoc))); return (CMenuDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMenuView message handlers //void CMenuView::OnMove(int x, int y) //{ //CView::OnMove(x, y); // TODO: Add your message handler code here //} void CMenuView::OnMouseMove(UINT nFlags, CPoint point) { //保存光标座标 m_point=point; //刷新客户区 Invalidate(); CView::OnMouseMove(nFlags, point); } void CMenuView::OnLButtonDown(UINT nFlags, CPoint point) { //光标的自由移动 ClipCursor(NULL); //加载光标 m_hCursor=AfxGetApp()->LoadCursor(IDC_CURSOR); //设置光标 CRect rect; GetClientRect(rect); CRect rect2; rect2.left=rect.left+rect.Width()/4; rect2.right=rect.right-rect.Width()/4; rect2.top=rect.top+rect.Height()/4; rect2.bottom=rect.bottom-rect.Height()/4; //映射屏幕座标 ClientToScreen(rect2); //限制光标的移动 ClipCursor(&rect2); CView::OnLButtonDown(nFlags, point); } void CMenuView::OnLButtonUp(UINT nFlags, CPoint point) { //光标的自由移动 ClipCursor(NULL); //加载光标 m_hCursor=AfxGetApp()->LoadCursor(IDC_CURSOR); //设置光标 ::SetCursor(m_hCursor); CView::OnLButtonUp(nFlags, point); } void CMenuView::OnInitialUpdate() { CView::OnInitialUpdate(); //加载光标 m_hCursor=AfxGetApp()->LoadCursor(IDC_CURSOR); } BOOL CMenuView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { //设置光标 ::SetCursor(m_hCursor); return TRUE; //return CView::OnSetCursor(pWnd, nHitTest, message); }
注意:本文是依據 俞志宏 老師的 《我在硅谷管芯片:芯片產品線經理生存指南》 一書閱讀後歸納總結得到。可以試做此書的讀後感,對芯片產業感興趣的同僚強烈推薦此書 爲什麼要見客戶 和客戶面對面主要是獲取與客戶相關的各類信息,包含但不限於: 市
原文: 【stars-one】星念輕小說下載器-Stars-One的雜貨小窩 一款將在線輕小說保存到本地的下載工具 軟件介紹 小說單卷下載 小說全卷下載(需VIP) 多線程解析和下載 下載導出爲epub文件 自動更新 軟件使用前需要進行
shell腳本獲取腳本所在目錄 執行腳本的父目錄不一定是當前的工作目錄。 url=$(dirname $(readlink -f $0))
總結 如果是完整克隆的那種虛擬機,是可以直接在openstack使用的,如果鏡像格式沒問題的話。 因爲kvm虛擬機大部分都是鏈接克隆出來的鏡像,不可用直接複製使用,所以需要創建新的鏡像文件 創建空盤:qemu-img creat
DQN是強化學習中的一種方法,是對Q-Learning的擴展。 通過引入深度神經網絡、經驗回放和目標網絡等技術,使得Q-Learning算法能夠在高維、連續的狀態空間中應用,解決了傳統Q-Learning方法在這些場景下的侷限性。 Q-Le
P1355 神祕大三角 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 隊友推薦的,算是入門凸包,就是用叉積判斷一下點是否相對每條邊都在凸包的邊的左側。 1 #include <bits/stdc++.h> 2
這一章把直線連接改爲折線連接,沿用原來連接點的關係信息。關於折線的計算,使用的是開源的 AStar 算法進行路徑規劃,啓發方式爲 曼哈頓距離,且不允許對角線移動。 請大家動動小手,給我一個免費的 Star 吧~ 大家如果發現了 Bug,歡
背景 在過往與不少合作伙伴們,就生產計劃項目方案的討論中,經常提及這樣的一種情況: “我們在編制生產計劃時,有些數量較大的訂單,需要拆分成多個子訂單,這樣才能利用多個資源並行加工,以縮短生產週期,提高資源利用率” - 我們稱爲【工單拆分
在前一篇關於APS系統設計分享文章(《APS系統設計經驗分享(時間推導 - 2023.03)》)中,我們提到將會分享使用OptaPlanner作爲規劃引擎開發APS系統過程中,遇到的一些時間相關的設計建議與異常情況分析。後來一直忙於項目
在生產排程過程中,除了可以藉助強大的算法,與優質的規劃模型對待排任務進行排產優化外,還會遇到一些需要人爲鎖定部分任務的情況。無論是APS系統開發人員,還是排產作業人員,在常見的認識中,對於“鎖定”概念的理解,第一反應就是把任務固定到某個資源
無論是面向銷售訂單的MPS,還是基於多工序制約關係的APS,還是具體車間生產中針對單一工序的任務作業調度優化,都存在基於被排程對象(例如銷售訂單、生產工單、工序任務)的優先級進行優化的需求場景。當我們僅在宏觀、較高層次的角度考慮,任務優先級
前言 大家好,我是老馬。很高興遇到你。 我們爲 java 開發者實現了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何處理的,可以參考我的另一個項目:
第一步:分析NGINX日誌 分析日誌主要目的是尋找那些異常活躍的IP地址,通過以下命令可以快速找出。 cat access.log | awk '{print$1}' |sort|uniq -c|sort -rn|head -10 命
title: Vue CLI 4與項目構建實戰指南 date: 2024/6/9 updated: 2024/6/9 excerpt: 這篇文章介紹瞭如何使用Vue CLI優化項目構建配置,提高開發效率,涉及配置管理、項目部署策略、插件系
title: Vue第三方庫與插件實戰手冊 date: 2024/6/8 updated: 2024/6/8 excerpt: 這篇文章介紹瞭如何在Vue框架中實現數據的高效驗證與處理,以及如何集成ECharts、D3.js、Chart.