文档库 最新最全的文档下载
当前位置:文档库 › VC中对话框使用技巧集合

VC中对话框使用技巧集合

VC中对话框使用技巧集合
VC中对话框使用技巧集合

注:以下代码以一个名为CTest6Dlg的对话框类为例

--------------------------------------------------------------------------------

1. 在任务栏隐藏对话框

ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);

--------------------------------------------------------------------------------

2. 使对话框为顶层窗口

SetWindowPos(&this->wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

--------------------------------------------------------------------------------

3. 在运行时添加最大化,最小化按钮

SetWindowLong(this->m_hWnd, GWL_ST YLE,

GetWindowLong(this->m_hWnd, GWL_ST YLE) |

WS_MINIM IZEBOX | WS_MAXIMIZEBOX);

UpdateWindow();

--------------------------------------------------------------------------------

4. 使能对话框右上角关闭按钮

在OnInitDialog中

方法一:

CMenu* menu = GetSystemMenu(FALSE);

menu->Modify M enu(SC_CLOSE, MF_BYCOMMAND | M F_GRAYED );

方法二:

CMenu* menu = GetSystemMenu(FALSE);

menu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);

--------------------------------------------------------------------------------

5. 当对话框一部分在屏幕外时,显示全部对话框

SendMessage(DM_REPOSITION);

--------------------------------------------------------------------------------

6. 改变鼠标外形

添加WM_SETCURSOR 消息映射函数

BOOL CTest6Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) {

SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HELP));

return 0;

}

--------------------------------------------------------------------------------

7. 改变对话框背景色和文本颜色

在CTest6App的InitInstance中添加

SetDialogBkColor(RGB(255,0,0), RGB(0,255,0));

--------------------------------------------------------------------------------

8. 改变对话框caption上的图标

导入自己的图标资源到工程中,把原来ID为IDR_MAINFRAME 的资源删除,把新的图标的ID命名为IDR_MAINFRAME --------------------------------------------------------------------------------

9. 在主对话框显示前,显示一个login对话框

BOOL CTest6App::InitInstance()

{

//...

int nResponse;

CLoginDlg loginDlg;

nResponse = loginDlg.DoModal();

if (nResponse == IDOK)

{

}

if (nResponse == IDCANCEL)

{

return FALSE;

}

CTest6Dlg dlg;

m_pMainWnd = &dlg;

int nResponse = dlg.DoModal();

if (nResponse == IDOK )

{

}

else if (nResponse == IDCANCEL)

{

}

return FALSE;

}

然后重载CLoginDlg对话框的哦OnOK(),在其中判断条件

void CLoginDlg::OnOK()

{

if (条件满足)

CDialog::OnOK();

else

AfxMessageBox(_T("invalid password!"));

}

--------------------------------------------------------------------------------

10. 在对话框中添加工具栏

方法一:添加以下代码到OnInitDialog 中

if ( !m_wndToolBar.Create(this) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1) )

{

TRACE0("Failed to Create Dialog Toolbar\n");

EndDialog(IDCANCEL);

}

CRect rcClientOld; // 久客户区RECT

CRect rcClientNew; // 加入TOOLBAR后的CLIENT RECT

GetClientRect(rcClientOld); //

// Called to reposition and resize control bars in the client area of a window

// The reposQuery FLAG does not really traw the Toolbar. It only does the calculations.

// And puts the new ClientRect v alues in rcClientNew so we can do the rest of the Math.

//重新计算RECT大小

RepositionBars(AFX_IDW_CONT ROLBAR_FIRST,

AFX_IDW_CONTROLBAR_LAST,

0,

reposQuery,

rcClientNew);

// All of the Child Windows (Controls) now need to be moved so the Tollbar does not cov er them up. //所有的子窗口将被移动,以免被TOOLBAR覆盖

// Offest to move all child controls after adding Tollbar

//计算移动的距离

CPoint ptOffset(rcClientNew.left-rcClientOld.left,

rcClientNew.top-rcClientOld.top);

CRect rcChild;

CWnd* pwndChild = GetWindow(GW_CHILD); //得到子窗口

while(pwndChild) // 处理所有子窗口

{

//移动所有子窗口

pwndChild->GetWindowRect(rcChild);

ScreenToClient(rcChild);

rcChild.OffsetRect(ptOffset);

pwndChild->MoveWindow(rcChild,FALSE);

pwndChild = pwndChild->GetNextWindow();

}

CRect rcWindow;

GetWindow Rect(rcWindow); // 得到对话框RECT

rcWindow.right += rcClientOld.Width() - rcClientNew.Width(); // 修改对话框尺寸

rcWindow.bottom += rcClientOld.Height() - rcClientNew.Height();

Mov eWindow(rcWindow,FALSE); // Redraw Window

RepositionBars(AFX_IDW_CONT ROLBAR_FIRST,AFX_IDW_CONT ROLBAR_LAST,0);

方法二:

https://www.wendangku.net/doc/1f4715264.html,/dialog/dlgtoolstatusbar.asp

--------------------------------------------------------------------------------

11.响应对话框的最大化、最小化、关闭、恢复事件

方法一:添加WM_SYSCOMMAND 消息映射函数

v oid CTest6Dlg::OnSysCommand(UINT nID, LPARAM lParam) {

if ( (nID & 0xFFF0) == IDM_ABOUTBOX )

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

if ( nID == SC_MAXIMIZE )

{

AfxMessageBox(_T("最大化"));

}

else if ( nID == SC_MINIMIZE )

{

AfxMessageBox(_T("最小化"));

}

else if ( nID == SC_CLOSE )

{

AfxMessageBox(_T("关闭"));

}

CDialog::OnSysCommand(nID, lParam);

}

方法二:添加WM_SIZE 消息映射函数

v oid CTest6Dlg::OnSize(UINT nT y pe, int cx, int cy)

{

CDialog::OnSize(nT y pe, cx, cy);

if ( nT y pe == SIZE_MAXIM IZED )

{

AfxMessageBox(_T("最大化"));

}

else if ( nT ype == SIZE_MINIMIZED )

{

AfxMessageBox(_T("最小化"));

}

else if ( nT ype == SIZE_RESTORED )

{

AfxMessageBox(_T("恢复"));

}

}

--------------------------------------------------------------------------------

12.代码实现窗口最小化,最大化,关闭

PostMessage(WM_SYSCOMMAND, SC_MINIMIZE);

PostMessage(WM_SYSCOMMAND, SC_MAXIMIZE);

PostMessage(WM_SYSCOMMAND, SC_CLOSE);

--------------------------------------------------------------------------------

13.按下ESC和ENTER键时禁止关闭对话框

方法一:

(1) 重载OnCancel和OnOk,屏蔽其中的CDialog::OnCancel()和CDialog::OnOk();

(2) 添加以下代码

v oid CTest6Dlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout; //if you have an about dialog

dlgAbout.DoModal();

}

else if ((nID & 0xFFF0) == SC_CLOSE)

{

//用户点击右上角"X"

EndDialog(IDOK);

}

else

{

CDialog::OnSysCommand(nID, lParam);

}

}

方法二:

BOOL CTest6Dlg::PreTranslateMessage(MSG* pM sg)

{

if ( pMsg->message == WM_KEYDOWN )

{

switch(pMsg->wParam)

{

case VK_ESCAPE:

return T RUE; //直接返回TRUE

break;

case VK_RET URN:

return T RUE;

break;

}

}

return CDialog::PreTranslateMessage(pM sg);

}

方法三:

Q122489:

How to Disable Default Pushbutton Handling for MFC Dialog

https://www.wendangku.net/doc/1f4715264.html,/kb/122489/en-us

--------------------------------------------------------------------------------

14.在对话框中处理键盘鼠标消息

处理PreTranslateMessage消息

以下代码示例只演示了键盘WM_KEYDOWN消息,你也可以处理鼠标消息,比如WM_LBUTTONDOWN,WM_LBUTTONUP,WM_RBUTTONDOWN等。

BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg)

{

/**********************************************************/

/* 当焦点在combobox(drop down风格)的edit上,响应回车*/

/***********************************************************/

if ( pM sg->message == WM_KEYDOWN )

{

switch( pM sg->wParam )

{

case VK_RET URN:

CEdit *pEdit = (CEdit*)m_combo1.GetWindow(GW_CHILD);

if(pMsg->hwnd == pEdit->m_hWnd )

{

AfxMessageBox("在combobox的edit中按下了Enter!");

}

return TRUE;

}

}

/****************************************/

/* ALT为WM_SYSKEYDOWN */

/****************************************/

if( pMsg->message == WM_SYSKEYDOWN )

{

switch( pM sg->wParam )

{

case VK_F1:

if(::GetKeyState(VK_MENU) < 0)//ALT+F1

{

AfxM essageBox("按下了ALT+F1");

return T RUE;

}

}

}

/****************************************/

/* 在clistctrl中按ctrl+A选中所有项*/

/****************************************/

if( pMsg->message == WM_KEYDOWN )

{

if(pM sg->hwnd == GetDlgItem(IDC_LIST1)->m_hWnd)

{

switch( pMsg->wParam )

{

case 65://A

if(::GetKeyState(VK_CONT ROL) < 0)//Shift+enter

{

for(int i=0; i

{

m_list.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED,

LVIS_SELECTED|LVIS_FOCUSED);

}

}

return TRUE;

}

}

}

/****************************************/

/* 当焦点在combobox,弹出自定义菜单*/

/****************************************/

if(pMsg->message == WM_RBUTTONDOWN)

{

CEdit *pEdit = (CEdit*)m_combo1.GetWindow(GW_CHILD);

if(pM sg->hwnd == pEdit->m_hWnd)

{

DWORD dwPos = GetMessagePos();

CPoint point( LOWORD(dwPos), HIWORD(dwPos) );

ScreenToClient(&point);

ClientToScreen(&point);

CMenu menu;

VERIFY( menu.LoadMenu( IDR_MENU1 ) );

CMenu* popup = menu.GetSubMenu(0);

ASSERT( popup != NULL );

popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );

}

}

return CDialog::PreTranslateMessage(pMsg);

}

--------------------------------------------------------------------------------

15.对话框启动即隐藏

添加WM_SHOWWINDOW 的消息映射

v oid CTest6Dlg::OnShowWindow(BOOL bShow, UINT nStatus)

{

if ( GetStyle() & WS_VISIBLE )

{

CDialog::OnShowWindow(bShow, nStatus);

}

else

{

long Sty le = ::GetWindowLong(*this, GWL_ST YLE);

::SetWindowLong(*this, GWL_ST YLE, Style | WS_VISIBLE);

CDialog::OnShowWindow(SW_HIDE, nStatus);

}

}

16.对话框自动停靠在屏幕边

const int DETASTEP = 50;

BOOL AdjustPos(CWnd *pWnd, CRect* lpRect)

{

//自动靠边

int iSX = GetSystemMetrics(SM_CXFULLSCREEN);

int iSY = GetSystemMetrics(SM_CYFULLSCREEN);

RECT rWorkArea;

BOOL bResult = SystemParametersInf o(SPI_GET WORKAREA, sizeof(RECT), &rWorkArea, 0);

CRect rcWA;

if ( !bResult )

{

//如果调用不成功就利用GetSystemMetrics获取屏幕面积

rcWA = CRect(0,0,iSX,iSY);

}

else

rcWA = rWorkArea;

int iX = lpRect->left;

int iY = lpRect->top;

if ( iX < rcWA.left + DETASTEP && iX!=rcWA.left )

{

//调整左

pWnd->SetWindowPos(NULL,rcWA.left,iY,0,0,SWP_NOSIZE);

lpRect->OffsetRect(rcWA.left-iX,0);

AdjustPos(lpRect);

return TRUE;

}

if ( iY < rcWA.top + DETASTEP && iY!=rcWA.top )

{

//调整上

pWnd->SetWindowPos(NULL ,iX,rcWA.top,0,0,SWP_NOSIZE);

lpRect->OffsetRect(0,rcWA.top-iY);

AdjustPos(lpRect);

return TRUE;

}

if ( iX + lpRect->Width() > rcWA.right - DETASTEP && iX !=rcWA.right-lpRect->Width() ) {

//调整右

pWnd->SetWindowPos(NULL ,rcWA.right-rcW.Width(),iY,0,0,SWP_NOSIZE);

lpRect->OffsetRect(rcWA.right-lpRect->right,0);

AdjustPos(lpRect);

return TRUE;

}

if ( iY + lpRect->Height() > rcWA.bottom - DETASTEP && iY !=rcWA.bottom-lpRect->Height() ) {

//调整下

pWnd->SetWindowPos(NULL ,iX,rcWA.bottom-rcW.Height(),0,0,SWP_NOSIZE);

lpRect->OffsetRect(0,rcWA.bottom-lpRect->bottom);

return TRUE;

}

return FALSE;

}

//然后在ONMOVEING事件中使用如下过程调用

CRect r=*pRect;

AdjustPos(this, &r);

*pRect=(RECT)r;

--------------------------------------------------------------------------------

17.单击窗口任意位置都可拖动窗口

方法一:

添加WM_LBUTTONDOWN 的消息映射

v oid CTest6Dlg::OnLButtonDown(UINT nFlags, CPoint point)

{

PostMessage(WM_NCLBUTTONDOWN, HT CAPT ION, 0);

CDialog::OnLButtonDown(nFlags, point);

}

方法二:

添加WM_NCHITTEST 的消息映射

注意:在classwizard->message中找不到WM_NCHITTEST的,需要在选项卡class info->message filter中选择window后该消息才会出现在message中。

void CTest6Dlg::OnNCHitTest(CPoint point)

{

return HT CAPT ION;

// return CDialog::OnNCHitTest(point);

}

或者参考

https://www.wendangku.net/doc/1f4715264.html,/msdnmag/issues/02/12/CQA/def ault.aspx

--------------------------------------------------------------------------------

18.用Enter键替换Tab键实现焦点切换

BOOL CTest6Dlg::PreTranslateMessage(MSG* pM sg)

{

if ( pMsg->message == WM_KEYDOWN )

{

if ( pM sg->wParam == VK_RETURN )

pM sg->wParam = VK_TAB;

}

return CDialog::PreTranslateMessage(pM sg);

}

--------------------------------------------------------------------------------

19.在对话框添加快捷键

(1) 在CXXXApp中类中添加声明

HACCEL m_haccel;

(2) 在resource v iew中右键点击树的根目录,选择insert,添加一个新的Accelerator,默认ID为IDR_ACCELERATOR1。

在其中添加相应菜单的快捷键。

(3) 在BOOL CXXXApp::InitInstance()中添加代码

m_haccel = LoadAccelerators(AfxGetInstanceHandle(), MAKEINT RESOURCE(IDR_ACCELERATOR1));

(4) 添加CXXXApp类的ProcessMessageFilter 消息映射函数

BOOL CTest6App::ProcessMessageFilter(int code, LPMSG lpMsg)

{

if ( m_haccel )

{

if ( ::TranslateAccelerator(m_pMainWnd->m_hWnd, m_haccel, lpMsg) )

return T RUE;

}

return CWinApp::ProcessMessageFilter(code, lpM sg);

}

或者参考

Q100770:

How to use accelerator keys and a main menu on the dialog box in Visual C++

https://www.wendangku.net/doc/1f4715264.html,/kb/100770/en-us

Adding Hot Keys to your Application

https://www.wendangku.net/doc/1f4715264.html,/msdnmag/issues/1200/c/default.aspx

--------------------------------------------------------------------------------

20.对话框全屏

int cx, cy;

HDC dc = ::GetDC(NULL);

cx = GetDeviceCaps(dc,HORZRES) + GetSystemMetrics(SM_CXBORDER);

cy = GetDeviceCaps(dc,VERT RES) + GetSystemMetrics(SM_CYBORDER);

::ReleaseDC(0,dc);

// Remove caption and border

SetWindowLong(m_hWnd, GWL_ST YLE,

GetWindowLong(m_hWnd, GWL_ST YLE) & (~(WS_CAPTION | WS_BORDER)));

// Put window on top and expand it to fill screen

::SetWindowPos(m_hWnd, HWND_TOPMOST,

-(GetSystemMetrics(SM_CXBORDER)+1),

-(GetSystemMetrics(SM_CYBORDER)+1),

cx+1,cy+1, SWP_NOZORDER);

或参考

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/dialog-basedapplications/article.php/c1837/

--------------------------------------------------------------------------------

21.控制对话框最大最小尺寸

(1) 对话框的属性的必须是resizing的

(2) 打开classwizard->class info标签页->message filter中选择window

(3) 添加WM_GETMINMAXINFO 消息映射

void CTest6Dlg::OnGetMinMaxInfo(MINMAXINFO *lpMMI)

{

lpMMI->ptMinTrackSize = CPoint(200, 200);

}

--------------------------------------------------------------------------------

22. 创建无模式对话框

Q103788:

Creating a Modeless Dialog Box with MFC Libraries

https://www.wendangku.net/doc/1f4715264.html,/kb/103788/EN-US/

Visual C++ M FC Samples

MODELESS Sample: Uses a CDialog Object as a Modeless Dialog Box

https://www.wendangku.net/doc/1f4715264.html,/library/def ault.asp?url=/library/en-us/vcsample/html/_sample_mfc_MODELESS.asp

--------------------------------------------------------------------------------

23.在对话框中改变菜单项状态(enable/disable, check/uncheck, change text)

Q242577:

You cannot change the state of a menu item from its command user-interface handler if the menu is attached to a dialog box in Visual C++ https://www.wendangku.net/doc/1f4715264.html,/kb/242577/en-us

--------------------------------------------------------------------------------

24. 按下F1出现帮助

Q141724:

Context-Sensitive Help in a CDialog Object

https://www.wendangku.net/doc/1f4715264.html,/kb/141724/en-us

msdn中的介绍

https://www.wendangku.net/doc/1f4715264.html,/en-us/library/dy d1yfww.aspx

或者如果你要屏蔽按下F1后出现的“找不到*.hlp文件”的提示对话框

添加WM_HELPINFO 消息映射

BOOL CTest6Dlg::OnHelpInfo(HELPINFO* pHelpInfo)

{

return TRUE;

//return CDialog::OnHelpInfo(pHelpInfo);//屏蔽该句

}

--------------------------------------------------------------------------------

25. 对话框初始化设置输入焦点的问题

(设置tab order可在对话框的resource view 默认情况下,对话框初始化显示的焦点按照在对话框编辑期间设置的tab order的第一个控件来设置的。

中用Ctrl+D显示出来,点鼠标进行顺序设置)。如果想人为的改变初始化时的输入焦点,可在对话框的OnInitDialog中把return T RUE; 改为return FALSE;

MSDN上的解释如下:

Return Value

Specifies whether the application has set the input focus to one of the controls in the dialog box. If OnInitDialog returns nonzero, Windows sets the input focus to the first control in the dialog box. The application can return 0 only if it has explicitly set the input focus to one of the controls in the dialog box.

--------------------------------------------------------------------------------

26. 在对话框间传递数据

CDlg1::OnButton1()

{

CDlg2 dlg2;

dlg2.m_str = _T("你好"; )

dlg2.m_bJudge = TRUE;

dlg2.DoModal();

}

//Dlg2.h

public:

CString m_str;

BOOL m_bJudge;

//Dlg2.cpp

CDlg2::OnInitDialog()

{

if (m_bJudge)

GetDlgItem(IDC_EDIT1)->SetWindowText(m_str);

}

--------------------------------------------------------------------------------

27. 在dlg1 中打开dlg2 时,dlg2 能修改dlg1 中的成员变量

//dlg1.cpp

#include "dlg2.h"

CDlg1::OnButton1()

{

CDlg2 dlg2;

dlg2.m_pDlg1 = this;

dlg2.DoModal();

}

//dlg2.h

class CDlg1;//添加dlg1类的声明

class CDlg2 : public CDialog

{

...

public:

CDlg1 *m_pDlg1;

}

//dlg2.cpp

#include "dlg1.h"

至此,你可以在dlg2.cpp中通过m_pDlg1操作CDlg1类中的成员变量了。

--------------------------------------------------------------------------------

28. 改变对话框字体,对话框大小改变的问题

Q145994:

How to calculate dialog box units based on the current font in Visual C++

https://www.wendangku.net/doc/1f4715264.html,/kb/q145994/

Q125681:

How To Calculate Dialog Base Units with Non-System-Based Font

https://www.wendangku.net/doc/1f4715264.html,/kb/125681/en-us

--------------------------------------------------------------------------------

29. 进行大数据量计算的时候,导致界面挂起无响应的问题

当在程序中需要进行大数据量计算的时候(比如搜索磁盘,大数据量传输等),由于这些计算过程是在界面线程(UI Process)中,由此引发了界面线程的消息阻塞。我们创建一个工作线程(worker thread)来处理计算过程,以解决该问题。

下面是一个简单的创建一个工作线程的实现:

//xxxdlg.h

static UINT M y Thread(LPVOID pParam);

CWinThread* pM y Thread;

//xxxdlg.cpp

CXXXDlg::OnButton1()

{

pM y Thread = AfxBeginThread(M y Thread, this);

pM y Thread = NULL;

}

UINT CXXXDlg::M y Thread(LPVOID pParam)

{

CXXXDlg *pDlg = (CXXXDlg *)pParam;

//这里添加计算过程

return 0;

}

--------------------------------------------------------------------------------

30. 工程资源的合并

以把B对话框的资源插入到A对话框为例:

(1) 生成一个*.ogx文件

打开B工程,在ClassView中鼠标右键点击所需的对话框类,单击"Add to Gallery"。

这时,会在" C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Gallery\工程B "的目录下产生一个ogx文件。

(2) 插入该*.ogx文件

打开A工程,选择菜单Project->Add To Project->components and controls... ,选择刚生成的ogx文件,然后Insert。

这时B对话框资源和对话框类就插入到A中了。。

--------------------------------------------------------------------------------

31. 在网上可以找到很多有用的代码,我只是把一些常用的功能列出链接,方便查看

https://www.wendangku.net/doc/1f4715264.html,

https://www.wendangku.net/doc/1f4715264.html,/dialog/

https://www.wendangku.net/doc/1f4715264.html,/Cpp/W-D/dislog/

改变对话框大小时同时改变控件大小

https://www.wendangku.net/doc/1f4715264.html,/dialog/easysize.asp

https://www.wendangku.net/doc/1f4715264.html,/dialog/resizabledialog.asp

https://www.wendangku.net/doc/1f4715264.html,/vchelp/archive.asp?type_id=5&class_id=1&cata_id=1&article_id=548&search_term=

https://www.wendangku.net/doc/1f4715264.html,/vchelp/archive.asp?type_id=5&class_id=1&cata_id=1&article_id=538&search_term=

--------------------------------------------------------------------------------

如何在可变大小(resizing)的对话框中实现滚动窗口

Q262954:

How to create a resizeable dialog box with scroll bars in Visual C++

https://www.wendangku.net/doc/1f4715264.html,/default.aspx?scid=kb;en-us;262954

https://www.wendangku.net/doc/1f4715264.html,/dialog/scrollablechilddialog.asp

--------------------------------------------------------------------------------

从某一点或某一边逐渐变大显示对话框

https://www.wendangku.net/doc/1f4715264.html,/dialog/canidialog.asp

--------------------------------------------------------------------------------

一个重载的MessageBox类

https://www.wendangku.net/doc/1f4715264.html,/dialog/xmessagebox.asp

--------------------------------------------------------------------------------

option设置对话框(左边是树,右边是子对话框)

实现原理:create多个child类型的对话框,然后全部hide,点击左边树的item时,显示相应子对话框。Q103375:

MultiDlg.exe Demonstrates Dynamic Child Dialog Boxes

https://www.wendangku.net/doc/1f4715264.html,/kb/103375/en-us

https://www.wendangku.net/doc/1f4715264.html,/dialog/ezoptionsdlg.asp

https://www.wendangku.net/doc/1f4715264.html,/dialog/csettingsdlg.asp

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/optionsdialogs/article.php/c1953/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/optionsdialogs/article.php/c2015/

--------------------------------------------------------------------------------

实现MSN的右下角的消息弹出提示窗口

https://www.wendangku.net/doc/1f4715264.html,/dialog/statusbarmsgwnd.asp

--------------------------------------------------------------------------------

Tip of the day(每日一贴)功能的实现

https://www.wendangku.net/doc/1f4715264.html,/dialog/XHTMLTipOf TheDay.asp

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/tipoftheday/article.php/c4993/

--------------------------------------------------------------------------------

不规则对话框

https://www.wendangku.net/doc/1f4715264.html,/dialog/SimpleIrregular.asp

--------------------------------------------------------------------------------

扩展和收缩对话框

https://www.wendangku.net/doc/1f4715264.html,/dialog/dlgexpand.asp

--------------------------------------------------------------------------------

对话框渐变色

https://www.wendangku.net/doc/1f4715264.html,/dialog/WinMakeInactive.asp

--------------------------------------------------------------------------------

屏幕捕捉

https://www.wendangku.net/doc/1f4715264.html,/dialog/screencap.asp

--------------------------------------------------------------------------------

对话框菜单添加“最近使用文件列表”功能

https://www.wendangku.net/doc/1f4715264.html,/dialog/rf ldlg.asp

--------------------------------------------------------------------------------

关闭对话框时,逐渐消失

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/animation/article.php/c5063/

--------------------------------------------------------------------------------

对话框背景bitmap

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/bitmapsimages/article.php/c1877/

--------------------------------------------------------------------------------

透明对话框

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/miscellaneous/article.php/c5065/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/miscellaneous/article.php/c5019/

--------------------------------------------------------------------------------

在对话框中创建view

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/article.php/c5009/

--------------------------------------------------------------------------------

Splash Screen

Q817372:

How to insert a splash screen in a dialog-based application by using Visual C++ .NET or Visual C++ 2005

https://www.wendangku.net/doc/1f4715264.html,/kb/817372/en-us

Q815376:

How to create and insert a splash screen in an SDI application or in an M DI application by using Visual C++ .NET or Visual C++ 2005 https://www.wendangku.net/doc/1f4715264.html,/kb/815376/en-us

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/splashscreens/article.php/c2011/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/miscellaneous/article.php/c5019/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/splashscreens/article.php/c5029/

--------------------------------------------------------------------------------

分割对话框

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/splitterwindowswithingdialogs/article.php/c4973/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/splitterwindowswithingdialogs/article.php/c2031/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/splitterwindowswithingdialogs/article.php/c1979/

--------------------------------------------------------------------------------

标题栏Title Bar

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/titlebar/article.php/c1897/

--------------------------------------------------------------------------------

添加状态栏statusbar和工具栏toolbar

Q123158:

Adding Control Bars to Foundation Classes Dialogs

https://www.wendangku.net/doc/1f4715264.html,/kb/123158/en-us

Visual C++ M FC Samples

DLGCBR32 Sample: Demonstrates Adding a Status Bar and Toolbar to Dialog Boxes

https://www.wendangku.net/doc/1f4715264.html,/library/def ault.asp?url=/library/en-us/vcsample/html/_sample_mfc_DLGCBR32.asp https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/toolbarsandstatusbars/article.php/c1955/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/toolbarsandstatusbars/article.php/c1939/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/toolbarsandstatusbars/article.php/c1949/

--------------------------------------------------------------------------------

Tooltip

Q141758:

How to add tooltips for controls to an MFC modal dialog box

https://www.wendangku.net/doc/1f4715264.html,/kb/141758/en-us

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/tooltipsfordialogcontrols/article.php/c2017/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/tooltipsfordialogcontrols/article.php/c1843/

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/tooltipsfordialogcontrols/article.php/c1839/

https://www.wendangku.net/doc/1f4715264.html,/miscctrl/pptooltip.asp

--------------------------------------------------------------------------------

从对话框边缘平滑弹出对话框

https://www.wendangku.net/doc/1f4715264.html,/cpp/w-d/dislog/miscellaneous/article.php/c5061/

VC 中自己创建对话框方法

VC中自己创建对话框的方法 这里讲在VC中不需要打开MFC工程,通过代码直接创建一个对话框,我看这个对话框比MFC的漂亮多了,而且要写会代码不需要研究MFC就直接开发新的工程. 先打开VC++ 6.0 版本, 第一步:创建一个工程名为:Main Dialog 的Win32 Application。创建过程如下: 打开File菜单中New,选自Win32 Application,工程名为:Main Dialog,点击OK,再选自A simple Win32 application。点击Finish,再点击OK.(见图1) 第二步:创建资源脚本。再打开File菜单中New,选自File选项的Resource Script(就是资源脚本),文件名为Dialog,点击OK。

(见图2) 第三步:插入对话框。刚才建立的脚本Dialog显示为Dialog.rc,就在Dialog.rc上面点击鼠标右键Insert(插入)Resource中选自插入Dialog(对话框),点击New(新建),这样对话框插入完毕。(见图3)

第四步:添加resource.h。我们把第四步插入的对话框ID改为IDD_MAIN ,在FileView中有个Header Files的文件,上面点击右键,选择Add Files to Folder...(添加文件到目录),弹出一个工程目录窗口,中间找到resource.h,然后OK了(添加)。(见图4)

第五步:复制代码。双击Main Dialog.cpp,我们写代码的位置出现了(见图5),那里有几行代码,把它们全部删掉,下面已经准备好的代码全部复制到那里,编译,执行,您的是否成功了? #include "stdafx.h" #include "resource.h" #include BOOL WINAPI Main_Proc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam); BOOL Main_OnInitDialog(HWND hwnd,HWND hwndFocus,LPARAM lParam); void Main_OnCommand(HWND hwnd,int id,HWND hwndCtl,

史上-最全-wordExcel使用技巧大全(超全)

不收藏不行的史上最全word用法 三招去掉页眉那条横线 1、在页眉中,在“格式”-“边框和底纹”中设置表格和边框为“无”,应用于“段落” 2、同上,只是把边框的颜色设置为白色(其实并没有删的,只是看起来没有了,呵呵) 3、在“样式”栏里把“页眉”换成“正文”就行了——强烈推荐! 会多出--(两个横杠) 这是用户不愿看到的,又要多出一步作删除-- 解决方法:替换时在前引号前加上一个空格问题就解决了 插入日期和时间的快捷键 Alt+Shift+D:当前日期 Alt+Shift+T:当前时间 批量转换全角字符为半角字符 首先全选。然后“格式”→“更改大小写”,在对话框中先选中“半角”,确定即可 Word启动参数简介 单击“开始→运行”命令,然后输入Word所在路径及参数确定即可运行,如“C:\ PROGRAM FILES \MICROSOFT Office \Office 10\ WINWord.EXE /n”,这些常用的参数及功能如下: /n:启动Word后不创建新的文件。 /a:禁止插件和通用模板自动启动。 /m:禁止自动执行的宏。 /w:启动一个新Word进程,独立与正在运行的Word进程。 /c:启动Word,然后调用Netmeeting。

/q:不显示启动画面。 另外对于常需用到的参数,我们可以在Word的快捷图标上单击鼠标右键,然后在“目标”项的路径后加上该参数即可。 快速打开最后编辑的文档 如果你希望Word在启动时能自动打开你上次编辑的文档,可以用简单的宏命令来完成: (1)选择“工具”菜单中的“宏”菜单项,单击“录制新宏”命令打开“录制宏”对话框; (2)在“录制宏”对话框中,在“宏名”输入框中输入“autoexec”,点击“确定”; (3)从菜单中选择“文件”,点击最近打开文件列表中显示的第一个文件名;并“停止录制”。保存退出。下次再启动Word时,它会自动加载你工作的最后一个文档。 格式刷的使用 1、设定好文本1的格式。 2、将光标放在文本1处。 3、单击格式刷按钮。 4、选定其它文字(文本2),则文本2的格式与文本1 一样。 若在第3步中单击改为双击,则格式刷可无限次使用,直到再次单击格式刷(或按Esc键)为止。 删除网上下载资料的换行符(象这种“↓”) 在查找框内输入半角^l(是英文状态下的小写L不是数字1),在替换框内不输任何内容,单击全部替换,就把大量换行符删掉啦。 选择性删除文件菜单下的最近使用的文件快捷方式。 工具→选项→常规把“列出最近使用文件数改为0”可以全部删除,若要选择性删除,可以按ctrl+Alt+ -三个键,光标变为一个粗减号后,单击文件,再单击要删除的快捷方式就行了。 建立一个矩形选区:

Excel使用技巧集锦—163种使用技巧大全(超全)

Excel 使用技巧集锦—— 163种技巧 目录 一、基本方法 7 1. 快速选中全部工作表 7 2. 快速启动Excel 7 3. 快速删除选定区域数据 8 4. 给单元格重新命名 8 5. 在Excel中选择整个单元格范围 9 6. 快速移动/复制单元格 9 7. 快速修改单元格式次序 9 8. 彻底清除单元格内容 10 9. 选择单元格 10 10. 为工作表命名 11 11. 一次性打开多个工作簿 11 12. 快速切换工作簿 13 13. 选定超级链接文本(微软Office技巧大赛获奖作品) 13 14. 快速查找 14

15. 修改默认文件保存路径 14 16. 指定打开的文件夹 15 17. 在多个Excel工作簿间快速切换 15 18. 快速获取帮助 16 19. 创建帮助文件的快捷方式 16 20. 双击单元格某边移动选定单元格 16 21. 双击单元格某边选取单元格区域 17 22. 快速选定不连续单元格 17 23. 根据条件选择单元格 17 24. 复制或移动单元格 18 25. 完全删除Excel中的单元格 18 26. 快速删除空行 19 27. 回车键的粘贴功能 19 28. 快速关闭多个文件 20 29. 选定多个工作表 20 30. 对多个工作表快速编辑 20 31. 移动和复制工作表 21

32. 工作表的删除 21 33. 快速选择单元格 21 34. 快速选定Excel区域(微软Office技巧大赛获奖作品) 22 35. 备份工件簿 22 36. 自动打开工作簿 23 37. 快速浏览长工作簿 23 38. 快速删除工作表中的空行 23 39. 绘制斜线表头 24 40. 绘制斜线单元格 25 41. 每次选定同一单元格 26 42. 快速查找工作簿 26 43. 禁止复制隐藏行或列中的数据 27 44. 制作个性单元格 27 一、数据输入和编辑技巧 28 45. 在一个单元格内输入多个值 28 46. 增加工作簿的页数 28 47. 奇特的F4键 29

VC对话框控件属性的修改

【作者按】本文主要针对初学者在使用对话框赋值时的一些问题而写。如果你对对话框的使用已经很熟练,请跳过本文。 【针对现象】许多初学者,常常写出这样的程序来修改对话框中某个按钮的标题: 其中m_Btn的定义为CButton m_Btn; 这段程序运行后会报错,debug一下,错误会指向一个断言语句 ASSERT(::IsWindow(m_hWnd));报告窗口指针为空。看一下m_hWnd,等于0x00000000.其实就是m_Btn这个CButton对象的句柄为空。 【原因分析】出现这种错误的原因,显然是m_Btn这个窗口对象还没有创建造成的。我们看一下CMyDialog dlg这个构造函数,看一看MSDN对CDialog构造函数的说明。其实它只是简单的创建了一个对话框实例。这里我这样理解,就是对话框是一个容器,而对话框上的各个控件是容器中包含的对象。对话框的构造函数只是构造了一个容器,而并没有创建容器中的各个对象。我想这里大家就应该明白为什么m_Btn的句柄为空了。 那对话框中的控件在什么时候被创建的呢?我个人没有仔细的研究过,但从个人使用的经验看,应该在DoModal函数和对话框的Create函数中创建的。因为使用一个模式对话框时,m_Btn.SetWindowText("MyButton")语句在OnInitDialog函数中执行没有问题。所以应该在DoModal中创建的。至于DoModal中是如何创建的,欢迎各位高手给与讲解。而对于非模式对话框,以下的程序运行没有问题: 可见控件的创建应该在Create函数中。

[解决办法]那么,如果非要实现这样的功能怎么办呢?笔者的解决办法是在对话框类中增加成员变量,比如m_sBtnTitle。数据的传递有以下三种方法: 1。增加Set函数,比如SetBtnTitle(CString str); 调用程序如下: 2。将m_sBtnTitle定义成公有类型。 那么dlg.m_sBtnTitle = "MyButton";就可以了。 3。修改或者重载一个新的构造函数,比如: 最后,在对话框类的初始化函数增加m_Btn.SetWindowText(m_sBtnTitle);即可。 还有一些网友提供的方法是定义全局变量。当然,首先肯定全局变量是可以完成此功能的。不过笔者并不赞同用全局变量的方法。对于面向对象的编程和设计来说,全局变量应该尽量少使用,因为全局变量将增加模块之间的耦合度,与面向对象的思想是有违背的。正如goto 语句,好用但尽量少用。在这里笔者并不是反对用全局变量,而是要看情况而用。笔者曾经开发过一个日本项目,粗略计算一下,全局变量不下于1000个,这样的程序的维护难度可想而知。 希望此文能够帮助初学者在VC之路上少走一些歪路,尽快融入VC开发大军。

简易常用-Word文档使用技巧方法大全(超全)

Word文档使用技巧方法大全 Word2000、2003、2007、2010快捷键使用大全总结常用快捷键 快捷键作用 一、字体类 Ctrl+B 使字符变为粗体 Ctrl+I 使字符变为斜体 Ctrl+U 为字符添加下划线 Ctrl+Shift+D 双下划线 Ctrl+Shift+< 缩小字号 Ctrl+Shift+> 增大字号 Ctrl+] 逐磅增大字号 Ctrl+[ 逐磅减小字号 Ctrl+Shift+F 改变字体 Ctrl+Shift+P 改变字号 Ctrl+D 改变字符格式("格式"菜单中的"字体"命令) Shift+F3 切换字母大小写(一次首字母变成大写,两次单词变成大写) CTRL+SHIFT+A 将所选字母设为大写 二、格式类 Ctrl+Shift+C 复制格式 Ctrl+Shift+V 粘贴格式 Ctrl+1 单倍行距(1为主键盘的数字键)

Ctrl+2 双倍行距 Ctrl+5 1.5 倍行距 Ctrl+0 在段前添加一行间距 Shift+F1(单击)需查看文字格式了解其格式的文字 Ctrl+E 段落居中 Ctrl+J 两端对齐 Ctrl+L 左对齐 Ctrl+R 右对齐 Ctrl+Shift+J 分散对齐 Ctrl+M 左侧段落缩进 Ctrl+Shift+M 取消左侧段落缩进 Ctrl+T 创建悬挂缩进 Ctrl+Shift+T 减小悬挂缩进量 Ctrl+Shift+S 应用样式 Ctrl+Shift+N 应用"正文"样式 Alt+Ctrl+1 应用"标题1"样式 Alt+Ctrl+2 应用"标题2"样式 Alt+Ctrl+3 应用"标题3"样式 三、编辑和文字移动 Backspace 删除左侧的一个字符 Ctrl+Backspace 删除左侧的一个单词 Delete 删除右侧的一个字符 Ctrl+Delete 删除右侧的一个单词 F2(然后移动插入移动选取的文字或图形点并按Enter键)

VC++对话框添加工具栏

VC++对话框添加工具栏 1、添加工具栏资源ID为IDR_TOOLBAR 2、在对话框的类定义中加: CToolBar m_ToolBar; 3、在OnInitDialog中或其它合适的消息响应中加如下代码:(函数可查看MSDN) m_ToolBar.Create(this); //创建工具栏 m_ToolBar.LoadToolBar(IDR_TOOLBAR);//加载工具栏 //得出控件条大小. CRect rect; CRect rectNow; GetClientRect(rect); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuery,rect Now); //放置控件条位置 CPoint ptOffset(rectNow.left-rect.left,rectNow.top-rect.top); CRect rcChild; CWnd* pwndChild=GetWindow(GW_CHILD); while (pwndChild) { pwndChild->GetWindowRect(rcChild); ScreenToClient(rcChild); rcChild.OffsetRect(ptOffset); pwndChild->MoveWindow(rcChild,FALSE); pwndChild=pwndChild->GetNextWindow(); } //调整对话框尺寸 CRect rcWindow; GetWindowRect(rcWindow); rcWindow.right+=rect.Width()-rectNow.Width(); rcWindow.bottom+=rect.Height()-rectNow.Height(); MoveWindow(rcWindow, FALSE);

Ex个使用技巧集锦

Excel 使用技巧集锦 一、基本方法 1. 快速选中全部工作表 右键单击工作窗口下面的工作表标签,在弹出的菜单中选择“选定全部工作表”命令即可()。 2. 快速启动Excel 如果想在启动系统自动运行Excel,可以这样操作: 1.双击“我的电脑”图标,进入Windows目录,依次打开“Start Menu\Programs\启动”文件夹; 2.打开Excel所在的文件夹,用鼠标将Excel图标拖到“启动”文件夹,这时Excel的快捷方式就被复制到“启动”文件夹中,下次启动Windows就可快速启动Excel了。如果Windows 系统已启动,你可用以下方法快速启动Excel: 方法一:单击“开始→文档”命令里的任一Excel工作簿即可。方法二:用鼠标从“我的电脑”中将Excel应用程序拖到桌面上,然后从快捷菜单中选择“在当前位置创建快捷方式”,以后启动时只需双击快捷方式即可。 3. 快速删除选定区域数据 如果用鼠标右键向上或向左(反向)拖动选定单元格区域的填充柄时,没有将其拖出选定区域即释放了鼠标右键,则将删除选定区域中的部分或全部数据(即拖动过程中变成灰色模糊的单元格区域,在释放了鼠标右键后其内容将被删除)。 4. 给单元格重新命名 Excel给每个单元格都有一个默认的名字,其命名规则是列标加横标,例如D3表示第四列、第三行的单元格。如果要将某单元格重新命名,可以采用下面两种方法: 1.只要用鼠标单击某单元格,在表的左上角就会看到它当前的名字,再用鼠标选中名字,就可以输入一个新的名字了。 2.选中要命名的单元格,单击“插入→名称→定义”命令,显示“定义名称”对话框,在“在当前工作簿中的名称”框里输入名字,单击“确定”按钮即可()。注意:在给单元格命名时需注意名称的第一个字符必须是字母或汉字,它最多可包含255个字符,可以包含大、小写字符,但是名称中不能有空格且不能与单元格引用相同。 5. 在Excel中选择整个单元格范围 在Excel中,如果想要快速选择正在处理的整个单元格范围,按下“Ctrl+Shift+ *”。注意:该命令将选择整个列和列标题,而不是该列表周围的空白单元格——你将得到所需的单元格。这一技巧不同于全选命令,全选命令将选择工作表中的全部单元格,包括那些你不打算使用的单元格。 6. 快速移动/复制单元格 先选定单元格,然后移动鼠标指针到单元格边框上,按下鼠标左键并拖动到新位置,然后释放按键即可移动。若要复制单元格,则在释放鼠标之前按下Ctrl即可。 7. 快速修改单元格式次序 在拖放选定的一个或多个单元格至新位置的同时,按住Shift键可以快速修改单元格内容的次序。方法为:选定单元格,按下Shift键,移动鼠标指针至单元格边缘,直至出现拖放指针箭头,然后进行拖放操作。上下拖拉时鼠标在单元格间边界处会变成一个水平“工”状标志,左右拖拉时会变成垂直“工”状标志,释放鼠标按钮完成操作后,单元格间的次序即发生了变化。 8. 彻底清除单元格内容

VC++实现对话框工程中添加菜单

VC++对话框程序中添加菜单 在VC中创建一个基于对话框的MFC程序,要在其中添加菜单总共分三步: 1、首先插入一个菜单资源IDR_MENU1,然后可以编辑修改菜单; 2、然后在为对话框添加一个CMenu类型的成员变量m_Menu; 3、在OnInitDialog()中添加如下的代码: m_Menu.LoadMenu(IDR_MENU1);//载入菜单 SetMenu(&m_Menu); //显示菜单 经过这三步以后菜单就可以显示出来了。 MFC 对话框工程中添加菜单(VC++ 6.0编译器) MFC 对话框工程中添加菜单(VC++ 6.0编译器) 第一步:创建对话框资源和菜单资源. 第二步:添加菜单到对话框中 方法一: 在创建的对话框中右键,在Menu选项选择自己的菜单ID如下图

此时就可以了. 方法二: 不用方法一,直接添加代码完成上述功能. 添加代码到DialogDlg ::OnInitDialog中 CMenu *menu = new CMenu; menu ->LoadMenu(MAKEINTRESOURCE(IDR_MENU)); //IDR_MENU 菜单ID this ->SetMenu(menu); 或者 Cmenu m_menu; m_menu.LoadMenu(IDR_MENU); SetMenu(&m_menu); 此时结果如下图 最后在添加菜单到对话框类中,实现其各种功能. 下面是在上面的基础上实现的通用对话框空间的功能代码,方便以后开发使用. (1)打开文件对话框 条件: OPENFILENAME结构体初始化 GetOpenFileName函数调用

WORD使用技巧大全(史上最强哦)

答:分节,每节可以设置不同的页眉。文件——页面设置——版式——页眉和页脚——首页不同 2.问:请问word中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来了 3.问:如何合并两个WORD文档,不同的页眉需要先写两个文件,然后合并,如何做?答:页眉设置中,选择奇偶页不同/与前不同等选项 4.问:WORD编辑页眉设置,如何实现奇偶页不同? 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊 ?答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同 5.问:怎样使WORD文档只有第一页没有页眉,页脚?答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”——“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。 6.问:如何从第三页起设置页眉?答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了 ●在新建文档中,菜单—视图—页脚—插入页码—页码格式—起始页码为0,确定; ●菜单—文件—页面设置—版式—首页不同,确定;

●将光标放到第一页末,菜单—文件—页面设置—版式—首页不同—应用于插入点之后,确定。第2步与第三步差别在于第2步应用于整篇文档,第3步应用于插入点之后。这样,做两次首页不同以后,页码从第三页开始从1编号,完成。 7.问:WORD页眉自动出现一根直线,请问怎么处理?答:格式从“页眉”改为“清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格式-边框和底纹-设置选无 8.问:页眉一般是---------,上面写上题目或者其它,想做的是把这根线变为双线,WORD中修改页眉的那根线怎么改成双线的?答:按以下步骤操作去做: ●选中页眉的文字,包括最后面的箭头 ●格式-边框和底纹 ●选线性为双线的 ●在预览里,点击左下小方块,预览的图形会出现双线 ●确定▲上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置 9.问:Word中的脚注如何删除?把正文相应的符号删除,内容可以删除,但最后那个格式还在,应该怎么办?答:步骤如下:1、切换到普通视图,菜单中“视图”——“脚注”,这时最下方出现了尾注的编辑栏。2、在尾注的下拉菜单中选择“尾注分隔符”,这时那条短横线出现了,选中它,删除。3、再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了,选中它,删除。4、切换回到页面视图,尾注和脚注应该都是一样的

Excel 使用技巧集锦

Excel 使用技巧集锦——163种技巧 目录 一、基本方法7 1.快速选中全部工作表7 2.快速启动E XCEL7 3.快速删除选定区域数据 7 4.给单元格重新命名7 5.在E XCEL中选择整个单元格范围7 6.快速移动/复制单元格8 7.快速修改单元格式次序 8 8.彻底清除单元格内容8 9.选择单元格8 10.为工作表命名9 11.一次性打开多个工作簿 9 12.快速切换工作簿9 13.选定超级链接文本(微软O FFICE技巧大赛获奖作品)10 14.快速查找10 15.修改默认文件保存路径 10 16.指定打开的文件夹10 17.在多个E XCEL工作簿间快速切换10 18.快速获取帮助11 19.创建帮助文件的快捷方式11 20.双击单元格某边移动选定单元格11 21.双击单元格某边选取单元格区域11 22.快速选定不连续单元格 11 23.根据条件选择单元格11 24.复制或移动单元格12

25.完全删除E XCEL中的单元格12 26.快速删除空行12 27.回车键的粘贴功能12 28.快速关闭多个文件12 29.选定多个工作表12 30.对多个工作表快速编辑 13 31.移动和复制工作表13 32.工作表的删除13 33.快速选择单元格13 34.快速选定E XCEL区域(微软O FFICE技巧大赛获奖作品)13 35.备份工件簿14 36.自动打开工作簿14 37.快速浏览长工作簿14 38.快速删除工作表中的空行14 39.绘制斜线表头14 40.绘制斜线单元格15 41.每次选定同一单元格15 42.快速查找工作簿15 43.禁止复制隐藏行或列中的数据15 44.制作个性单元格16 二、数据输入和编辑技巧16 1.在一个单元格内输入多个值 16 2.增加工作簿的页数16 3.奇特的F4键16 4.将格式化文本导入E XCEL16 5.快速换行17 6.巧变文本为数字17 7.在单元格中输入0值17 8.将数字设为文本格式18

VC中对话框使用技巧集合

注:以下代码以一个名为CTest6Dlg的对话框类为例 -------------------------------------------------------------------------------- 1. 在任务栏隐藏对话框 ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW); -------------------------------------------------------------------------------- 2. 使对话框为顶层窗口 SetWindowPos(&this->wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); -------------------------------------------------------------------------------- 3. 在运行时添加最大化,最小化按钮 SetWindowLong(this->m_hWnd, GWL_ST YLE, GetWindowLong(this->m_hWnd, GWL_ST YLE) | WS_MINIM IZEBOX | WS_MAXIMIZEBOX); UpdateWindow(); -------------------------------------------------------------------------------- 4. 使能对话框右上角关闭按钮 在OnInitDialog中 方法一: CMenu* menu = GetSystemMenu(FALSE); menu->Modify M enu(SC_CLOSE, MF_BYCOMMAND | M F_GRAYED ); 方法二: CMenu* menu = GetSystemMenu(FALSE); menu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED); -------------------------------------------------------------------------------- 5. 当对话框一部分在屏幕外时,显示全部对话框 SendMessage(DM_REPOSITION); -------------------------------------------------------------------------------- 6. 改变鼠标外形 添加WM_SETCURSOR 消息映射函数 BOOL CTest6Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HELP)); return 0; } -------------------------------------------------------------------------------- 7. 改变对话框背景色和文本颜色 在CTest6App的InitInstance中添加

word使用技巧大全

1 常用快捷键 Ctrl+C 复制所选文本或对象 Ctrl+C连续2次调出剪切板 Ctrl+X 剪切所选文本或对象 Ctrl+V 粘贴文本或对象 Ctrl+] 逐磅增大字号 Ctrl+[ 逐磅减小字号 Shift+Enter 换行符 Ctrl+Enter 分页符 Ctrl+A 包含整篇文档 F1 显示当前程序或者winodws的帮助内容。 F2 选中一个文件“重命名” F3 在桌面时打开“查找:所有文件”对话框 ALT+TAB 切换当前程序 ALT+ESC 切换当前程序 PRINTSCREEN 将当前屏幕以图象方式拷贝到剪贴板ALT+PRINTSCREEN 将当前活动程序窗口以图象方式拷贝到剪贴板 winodws键或CTRL+ESC 打开开始菜单 Windows徽标键+TAB键在任务栏上的按钮间循环 Windows徽标键+E键启动“我的电脑” Windows徽标键+D键快速显示桌面 Windows徽标键+R键执行“运行”命令 Windows徽标键+F键搜索文件或者文件夹 Windows徽标键+F1键显示Windows帮助 Windows徽标+PRINTSCREEN 将屏幕复制到剪贴板(包括鼠标光标)Windows徽标+SCROLLLOCK 将屏幕复制到剪贴板(不包括鼠标光标)

2 图形技巧 2.1 绘制图形的技巧 2.1.1 画直线 画直线的同时按着Shift键,将可以画出15°、30°、45°、60°、75°等具有特殊角度的直线。按住Ctrl键可画出自中间向两侧延伸的直线,同时按住这两个键则可画出自中间向两侧延伸的具有特殊角度的直线。 2.1.2 画弧 按住Shift键的同时可画出45度圆弧(画圆弧方法:打开绘图工具栏,单击“自选图形/基本形状/弧形”),按住Ctrl键可画出自中间向两侧延伸的圆弧,同时按住这两个键则可画出自中间向两侧延伸的45°圆弧,按住Alt键可画出一端固定的圆弧,同时按住Ctrl和Alt键则可画出一端固定的45°圆弧。 2.1.3 画矩形 按住Shift键可绘制出一个特殊的矩形——正方形,按住Ctrl键可绘出自中间向四周延伸的矩形,同时按住这两个键则可画出自中间向四周延伸的正方形。画圆时与此类似。 由此可见结合键盘画图的奇妙效果。 2.2 选择图形的技巧 如果需要选择部分图形,则可在按住Shift键的同时依次进行选择或单击绘图工具栏上的“选择对象”按钮,然后用鼠标画出一个框将所需要的图形罩住即可。 如果是各图形层叠在一起的情况,则可以首先选中最上面的图形,然后按Tab键或“Shift+Tab”组合键依次选择即可。 小提示:如果你发现某图形选择起来很困难(鼠标变不成十字形状),这种情况常发生在多个图形混杂在一起的情况,同样点击“选择对象”按钮后你会发现选择很容易。

最新版Excel 使用技巧集锦大全(超全)

最新Excel使用技巧集锦大全 目录 一、基本方法7 1.快速选中全部工作表7 2.快速启动E XCEL7 3.快速删除选定区域数据7 4.给单元格重新命名7 5.在E XCEL中选择整个单元格范围7 6.快速移动/复制单元格8 7.快速修改单元格式次序8 8.彻底清除单元格内容8 9.选择单元格8 10.为工作表命名9 11.一次性打开多个工作簿9 12.快速切换工作簿9 13.选定超级链接文本(微软O FFICE技巧大赛获奖作品)10 14.快速查找10 15.修改默认文件保存路径10 16.指定打开的文件夹10 17.在多个E XCEL工作簿间快速切换10 18.快速获取帮助11 19.创建帮助文件的快捷方式11 20.双击单元格某边移动选定单元格11 21.双击单元格某边选取单元格区域11 22.快速选定不连续单元格11 23.根据条件选择单元格11 24.复制或移动单元格12 56返利网:https://www.wendangku.net/doc/1f4715264.html,淘宝购物省钱专家!第1页

25.完全删除E XCEL中的单元格12 26.快速删除空行12 27.回车键的粘贴功能12 28.快速关闭多个文件12 29.选定多个工作表12 30.对多个工作表快速编辑13 31.移动和复制工作表13 32.工作表的删除13 33.快速选择单元格13 34.快速选定E XCEL区域(微软O FFICE技巧大赛获奖作品)13 35.备份工件簿14 36.自动打开工作簿14 37.快速浏览长工作簿14 38.快速删除工作表中的空行14 39.绘制斜线表头14 40.绘制斜线单元格15 41.每次选定同一单元格15 42.快速查找工作簿15 43.禁止复制隐藏行或列中的数据15 44.制作个性单元格16 二、数据输入和编辑技巧16 1.在一个单元格内输入多个值16 2.增加工作簿的页数16 3.奇特的F4键16 4.将格式化文本导入E XCEL16 5.快速换行17 6.巧变文本为数字17 7.在单元格中输入0值17 8.将数字设为文本格式18 56返利网:https://www.wendangku.net/doc/1f4715264.html,淘宝购物省钱专家!第2页

VC++对话框中使用表格控件的方法

在对话框中使用表格控件的方法: 将该控件改成“report”类型,方法如下。 首先打开该控件的属性,将其设置为“Report”类型,如下图所示。

改完后变为如下形式,是变成了一个列表框。 下面说一下如何通过代码向控件中填加内容,主要是设置表头,然后加入内容,至少有两种方法可以进行信息的加入,下面仅介绍一种。 首先向与对话框对应的类中加入一个与ListControl控件对应的成员函数。填加方法如下:

运行“ClassWizard”定义一个类的ListCtrl控件成员,填加界面如下,其中IDC_LIST1是上面填加的表格控件的ID 。 选中“Member Variables”标签,点击“Add Variable”出现如下对话框,添加变量名,添加后,就会在与对话框对应的类中加如m_List变量,类型为CListCtrl。

在程序中加入如下代码,实现在表格中显示信息: m_List.InsertColumn(0,"Col 1",LVCFMT_LEFT,80,0); //设置列 m_List.InsertColumn(1,"Col 2",LVCFMT_LEFT,80,1); m_List.InsertColumn(2,"Col 3",LVCFMT_LEFT,80,2); m_List.InsertItem(0,"Item 1_1"); //插入行 m_List.SetItemText(0,1,"Item 1_2"); //设置该行的不同列的显示字符m_List.SetItemText(0,2,"Item 1_3"); 运行上面几行代码后的效果如下图所示。

实用word使用技巧大全

实用Word使用技巧大全 目录 第一、WORD问答 (1) 第二、论文WORD技巧小结 (13) 第三、用WORD排论文的技巧 (14) 第四、用WORD编辑论文的几个建议 (15) 第五、快捷键 (18) 第六、功能键 (20) 第七、WORD表格处理技巧 (21) II

第一、Word问答 1.问:Word里边怎样设置每页不同的页眉如何使不同的章节显示的页眉不同 答:分节,每节可以设置不同的页眉。文件——页面设置——版式——页眉和页脚——首页不同。 2.问:请问Word中怎样让每一章用不同的页眉怎么我现在只能用一个页眉,一改就全部改了 答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来了。 3.问:如何合并两个Word文档,不同的页眉需要先写两个文件,然后合并,如何做 答:页眉设置中,选择奇偶页不同/与前不同等选项。 4.问:Word编辑页眉设置,如何实现奇偶页不同比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊 答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同。 5.问:怎样使Word文档只有第一页没有页眉,页脚 答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”——“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。 6.问:如何从第三页起设置页眉 答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了。 1

Excel使用技巧集锦--100种技巧

Excel使用技巧集锦--100种技巧 十月 ^一月2017-11-28 12:06:06 目录 一、基本方法7 1?快速选中全部工作表7 2?快速启动Excel 7 3?快速删除选定区域数据7 4. 给单元格重新命名7 5. 在Excel中选择整个单元格范围7 6?快速移动/复制单元格8 7. 快速修改单元格式次序8 8. 彻底清除单元格内容8 9. 选择单元格8 10. 为工作表命名9 11. 一次性打开多个工作簿9 12. 快速切换工作簿9 10 13. 选定超级链接文本(微软Office技巧大赛获奖作品) 14. 快速查找10 15. 修改默认文件保存路径10

16. 指定打开的文件夹10 17. 在多个Excel工作簿间快速切换10 18. 快速获取帮助11 19. 创建帮助文件的快捷方式11 20. 双击单元格某边移动选定单元格11 21. 双击单元格某边选取单元格区域11 22. 快速选定不连续单元格11 23. 根据条件选择单元格11 24. 复制或移动单元格12 25. 完全删除Excel中的单元格12 26. 快速删除空行12 27. 回车键的粘贴功能12 28. 快速关闭多个文件12 29. 选定多个工作表12 30. 对多个工作表快速编辑13 31. 移动和复制工作表13 32. 工作表的删除13 33. 快速选择单元格13 34. 快速选定Excel区域(微软Office技巧大赛获奖作品) 13 35. 备份工件簿14

36. 自动打开工作簿14 37. 快速浏览长工作簿14 38. 快速删除工作表中的空行14

39. 绘制斜线表头14 40. 绘制斜线单元格15 41. 每次选定同一单元格15 42. 快速查找工作簿15 43. 禁止复制隐藏行或列中的数据15 44. 制作个性单元格16 二、数据输入和编辑技巧16 1. 在一个单元格内输入多个值16 2. 增加工作簿的页数16 3. 奇特的F4键16 4. 将格式化文本导入Excel 16 5. 快速换行17 6. 巧变文本为数字17 7. 在单元格中输入0值17 8. 将数字设为文本格式18 9. 快速进行单元格之间的切换(微软Office技巧大赛获奖作品) 18 10. 在同一单元格内连续输入多个测试值18 11. 输入数字、文字、日期或时间18 12. 快速输入欧元符号19 13. 将单元格区域从公式转换成数值19

VC 对话框自带滚动条的使用

VC对话框自带滚动条的使用 一,使用对话框窗口自带的滚动条,在属性页面中设置即可,如下 二,OnInitDialog()函数中,添加如下滚动条初始化语句 SCROLLINFO vinfo; vinfo.cbSize =sizeof(vinfo); vinfo.fMask =SIF_ALL; vinfo.nPage =50;//滚动块自身的长短,通常有如下关系:其长度/滚动条长度(含两个箭头)=nPage/(nMax+2),//另外nPage取值-1时,滚动条会不见了。 vinfo.nMax =600;//滚动条所能滚动的最大值 vinfo.nMin=0;//滚动条所能滚动的最小值 vinfo.nTrackPos =0; SetScrollInfo(SB_VERT,&vinfo);//即使上述步骤一不做,使用此条语句也可以显示滚动条 三,添加相应的WM_VSCROLL函数

void CMy1d0Dlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default SCROLLINFO scrollinfo; GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); switch (nSBCode) { case SB_BOTTOM: //滑块滚动到最底部 ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax)*10); //滚动屏幕 scrollinfo.nPos = scrollinfo.nMax; //设定滑块新位置 SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); //更新滑块位置 break; case SB_TOP: //滑块滚动到最顶部 ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin)*10); scrollinfo.nPos = scrollinfo.nMin; SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break; case SB_LINEUP: //单击上箭头 scrollinfo.nPos -= 1; if (scrollinfo.nPosscrollinfo.nMax) { scrollinfo.nPos = scrollinfo.nMax; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,-10); break; case SB_PAGEUP: //单击滑块上方空白区域 scrollinfo.nPos -= 5; if (scrollinfo.nPos

WORD使用技巧大全(史上最强哦)

1.问:WORD里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉。文件——页面设置——版式——页眉和页脚——首页不同 2.问:请问word中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来了 3.问:如何合并两个WORD文档,不同的页眉需要先写两个文件,然后合并,如何做?答:页眉设置中,选择奇偶页不同/与前不同等选项 4.问:WORD编辑页眉设置,如何实现奇偶页不同? 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊?答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同 5.问:怎样使WORD文档只有第一页没有页眉,页脚?答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”——“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。 6.问:如何从第三页起设置页眉?答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了

●在新建文档中,菜单—视图—页脚—插入页码—页码格式—起始页码为0,确定; ●菜单—文件—页面设置—版式—首页不同,确定; ●将光标放到第一页末,菜单—文件—页面设置—版式—首页不同—应用于插入点之后,确定。第2步与第三步差别在于第2步应用于整篇文档,第3步应用于插入点之后。这样,做两次首页不同以后,页码从第三页开始从1编号,完成。 7.问:WORD页眉自动出现一根直线,请问怎么处理?答:格式从“页眉”改为“清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格式-边框和底纹-设置选无 8.问:页眉一般是---------,上面写上题目或者其它,想做的是把这根线变为双线,WORD中修改页眉的那根线怎么改成双线的?答:按以下步骤操作去做: ●选中页眉的文字,包括最后面的箭头 ●格式-边框和底纹 ●选线性为双线的 ●在预览里,点击左下小方块,预览的图形会出现双线 ●确定▲上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置

相关文档
相关文档 最新文档