zoukankan      html  css  js  c++  java
  • VC雕虫小技集(1~7)

    VC雕虫小技集(一)

    1,避免随机数相同,可以取当前时间,读文件,读任意内存(如未定义变量,有一定危险).

           CTime t = CTime::GetCurrentTime();

           int n = t.GetMinute() * 60 + t.GetSecond();

           while(n-- > 0)

           {

                  rand();

           }

           const int N = 100;

           int result = rand()%N;

     

     

    2, 字符串与数的转换

    sprintf,sscanf,其实还有其它许多函数,但只这两个函数是最容易记住的.因为它们和printf,scanf,fprint,fscanf的用法类似.

           char str[100];

           int    x = 5;

           sprintf(str,"%d",x);

           sscanf("10","%x",&x);

     

     

    3,看一个键是否处于按下状态以及是否被按下过.

    SHORT key = GetAsyncKeyState(VK_F11);

    0x8001处于被按下状态

    1两次调用GetAsyncKeyState(VK_F11);之间,f11被按下过.

    GetAsyncKeyState,GetKeyState指定虚拟码为VK_LBUTTON,VK_RBUTTON就可判断鼠标是否被按下过

     

    4,如何删除一个类.

    把文件删除,再打开类向导(Ctrl+W)

    类向导找不到文件,会弹出一个对话框

    ReMove就行了.

     

    5,自定义的类没了:

    project->Add to project ->files

     

    6,使用PI

    include math.h

    #define _USE_MATH_DEFINES

    #include "math.h"

    M_PI 就是pi了

     

    7,请问怎样可以获得分区的卷标??

    char buf[MAX_PATH];

    GetVolumeInformation("c://", buf, MAX_PATH, NULL, NULL, NULL, NULL, NULL);

    AfxMessageBox(buf);

     

    8,打开一个网页

    ShellExecute(::GetDesktopWindow(),_T("open"),//SK modified for Unicode

                  _T("http://www.sohu.com"),NULL,NULL,//SK modified for Unicode

                  SW_MAXIMIZE);

     

    9,关闭时,弹出对话框让用户确认

    void CMainFrame::OnClose()

    {

           if(IDOK != MessageBox("你要退出吗?点确定退出","你要退出吗?",MB_OKCANCEL))

                  return  ;

           CFrameWnd::OnClose();

     

    10,菜单小问题

    ID_FILE_OPEN

    在资源Accelerator中为:

    ID                        Key

    ID_FILE_OPEN              Ctrl+O

    表示在程序中按ctrl+o组合键激活打开菜单(如果文件菜单打开了,就无效).

    在资源Menu中为:

    ID_FILE_OPEN的标题为打开(&O).../tCtrl+O

    &O表示当它的父菜单(文件菜单)被打开后,O激活文件菜单.

     

    11,Sizeof有问题??

    class B

      {

        bool a;

        bool c;

        int b;

      }; // sizeof (B) == 8

        布局:

      1    2    3    4

      bool bool 填充 填充

      1    2    3    4

      int ...............

      一目了然.:)

      这个时候编译器只在c后插入两个填充字节,因为b占四个字节,所以自动的以一个字的二进制来填充.

     这是编译器的对齐问题,只要在前面加入

    #pragma 1

    使得按一个byte对齐就可以了.


    VC雕虫小技集(二)
    何志丹

    1,如果你没有定义_UNICODE,则LPCTSTR代表 const char * ,因此直接使用就可以了.

    如果定义了_UNICODE ,LPCTSTR代表 const wchar_t* ,就不能直接使用了.

     

    2,得到鼠标的位置

    DWORD dw = GetMessagePos();

    CPoint pt(LOWORD(dw),HIWORD(dw));//鼠标的屏幕坐标

    CWnd::ScreenToClient();

     

    3,得到文件的长度

    方法一:HANDLE hHandle;

    DWORD dwSize;

    hHandle = ::CreateFile((LPCTSTR)strZipfile,GENERIC_READ,

           FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,

           NULL);

    if(hHandle == INVALID_HANDLE_VALUE)

           return FALSE;

    dwSize = ::GetFileSize(hHandle,NULL);

    CloseHandle(hHandle);

     

    方法二:CString szFile="c:/aaa.txt";

    int nFileSize=0;

    CFileFind finder;

    if(finder.FindFile(szFile)){

           finder.FindNextFile();

           nFileSize = finder.GetLength();    //文件大小在这里

           finder.Close();

    }

     

    方法三:CStdioFile sf;

    ….

    sf.GetLength();

     

     

    4,数组没有"=",但有copy.

     

    5,如何得到view类的句柄

    不要忘记了# include 文件

    CMyView *pView = (CMyView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView();

     

    pView->m_hWnd就是

     

    6,自定义消息

    下面是增加自定义消息的步骤:

    第一步:定义消息。开发Windows95应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。

    第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。

    LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)

    {

    // TODO: 处理用户自定义消息

    ...

    return 0;

    }

    第三步:在类头文件的AFX_MSG块中说明消息处理函数:

    class CMainFrame:public CMDIFrameWnd

    {

    ...

    // 一般消息映射函数

    protected:

    // {{AFX_MSG(CMainFrame)

    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

    afx_msg void OnTimer(UINT nIDEvent);

    afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);

    //}}AFX_MSG

    DECLARE_MESSAGE_MAP()

    }

    第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。

    BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)

    //{{AFX_MSG_MAP(CMainFrame)

    ON_WM_CREATE()

    ON_WM_TIMER()

    ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)

    //}}AFX_MSG_MAP

    END_MESSAGE_MAP()

    如果用户需要一个整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage并使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。

     

    7,wscanf是scanf的宽字符版本,用法与scanf是一样的,用来读取stdin流,并将信息存储到其参数列表指定的变量中。

    cin 对象是由istream类所衍生出的,主要用来将数据由标准输入装置输入到程序中的变量,通过cin输入的数据,必须以字节流的格式组成,cin搭配“>>”用算符

     
    VC雕虫小技集(三)
    何志丹

    1,固定窗口大小,最大值为(600,400),最小值也为(600,400).

    void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)

    {

        lpMMI->ptMaxTrackSize.x = 600;

           lpMMI->ptMaxTrackSize.y = 400;

           lpMMI->ptMinTrackSize.x = 600;

           lpMMI->ptMinTrackSize.y = 400;

          

           CFrameWnd::OnGetMinMaxInfo(lpMMI);

    }

     

    2,关闭对话框和窗口:

    其实,一般窗口的销毁可以用DestoryWindow(),对话框的销毁可以用EndDialiog().

    EndDialog(IDOK);

    DoModal()的返回值为IDOK,但不会执行用户定义的OnOK.

    只要发送WM_CLOSE消息,就会有响应的函数处理的。

    SendMessage(WM_CLOSE);

    PostMessage(WM_CLOSE);

    void CTestDialog::OnButton1()

    {    

           GetParent()->DestroyWindow();

    }

    窗口和对话框一起关

    PostMessage(WM_QUIT);

    SendMessage(WM_QUIT);//不行

    无模式对话框用DestroyWindow();

    用EndDialog

    你再打开原对话框就有问题

     

    3,全局变量的使用:

    C***App中定义一个CString

    使用时

    void CDlgDlg::OnButton2()

    {

           ((CDlgApp*)AfxGetApp())->str = "test";

    }

    不要忘记了包含文件

     

    4,如何让dos程序开机自动运行并且不显示

    自动运行好解决,写注册表run值,

    vc+windows2000

    把main改为winmain

     

    5,清除自动密码历史记录

    浏览器中:

    工具->Internet选项->内容->点"自动完成(U)"按钮->清除密码

    http://tzsvc.xiloo.com/skill/sys/clear.htm

    SHDeleteKey(HKEY_CURRENT_USER,

    _T("Software//Microsoft//Internet Explorer//IntelliForms"));

     

    6,执行一个可执行程序

    方法一:

     ShellExecute(this->GetSafeHwnd(),"Open","f://he.txt",NULL,NULL,SW_SHOWNORMAL );

    方法二:

    PROCESS_INFORMATION pi;

        STARTUPINFO si;

        si.cb = sizeof(STARTUPINFO);

        si.lpReserved = NULL;

        si.lpDesktop = NULL;

        si.lpTitle = NULL;

        si.dwFlags = 0;

        si.cbReserved2 = 0;

        si.lpReserved2 = NULL;

        BOOL bres = CreateProcess(NULL,"test a.txt b.txt",NULL,NULL,false,

                            NORMAL_PRIORITY_CLASS,

                            NULL,NULL,&si,&pi);

    if(bres==false)

    {

    AfxMessageBox("CreateProcess failed");

    }

    else

    {

    CloseHandle(pi.hThread);

    DWORD dwret=WaitForSingleObject(pi.hProcess, 1000*30);

    switch(dwret)

    {

    case WAIT_OBJECT_0:

    DWORD dwexitcode;

    bres = GetExitCodeProcess(pi.hProcess,&dwexitcode);

    TCHAR exitmsgbuf[1024];

    if(bres)

    {

    wsprintf(exitmsgbuf,"exit code:%d",dwexitcode);

    }

    else

    wsprintf(exitmsgbuf,"exit code failed to return");

     

    AfxMessageBox(exitmsgbuf);

    break;

    default:

    AfxMessageBox("exit for other reason");,

     

    VC雕虫小技集(四)
    何志丹

    1, 阅读程序常常要看此变量在那些地方值改变过

    ctrl+f查找太麻烦

    将此变量前加const

    改变的地方报错

     

    2, 看一个函数被那些函数调用.

    方法:

    1,调试状态下,view->debug window->call Stack

    2,class view 的快捷菜单中选择called by

     

    3, 在状态栏的最左边显示时间

    static UINT indicators[] =

    {

            ID_SEPARATOR,//我们增加的

           ID_SEPARATOR,          

           ID_INDICATOR_CAPS,

           ID_INDICATOR_NUM,

           ID_INDICATOR_SCRL,

    };

     

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

    {

          .....       m_wndStatusBar.SetPaneInfo(1,ID_SEPARTOR,SBPS_NORMAL,60);

    }

     

    //菜单的响应函数

    void CMainFrame::OnTest()

    {

        CTime t;

           t = CTime::GetCurrentTime();

           CString str = t.Format("%H - %M  -%S");

           m_wndStatusBar.SetPaneText(0,str);

     

    }

     

    4,模拟鼠标

    ::SetCursorPos((int)ptMouse->x,(int)ptMouse->y);       ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);         ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);           ::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);         ::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

     

    5,什么是WORD, DWORD

     typedef unsigned short WORD

     typedef unsigned long  DWORD

     

    6,移动控件

     CWnd * pWnd = GetDlgItem(IDC_BUTTON1);

           CRect r;

           pWnd->GetWindowRect(&r);

           r.left +=50;

           r.right += 50;

           pWnd->MoveWindow(r);

     

    7, 如何让对话框中的CEdit响应ENTER键回车

    GetDlgItem(IDC_EDIT1)->SetWindowText("111/r/n22");

    右键属性

    sytle -> Multiline选上

    最好把want return 也选上

     

    8,将c语言转化为汇编

    VC++ provides this feature.

    Project->Settings...

    C/C++ tab

    Category: Choose Listing Files

    Listing file type:

    select "Assembly with source code"

     

    9,如何获得进程所消耗的CPU时间?

    BOOL GetProcessTimes(

      HANDLE hProcess,

      LPFILETIME lpCreationTime,

      LPFILETIME lpExitTime,

      LPFILETIME lpKernelTime,

      LPFILETIME lpUserTime

    );

     

    10,如何通过扩展名得到该扩展名所对应的图标?

    SHGetFileInfo(path,

                  attr,

                  &sfi,

                  sizeof(SHFILEINFO),

                  SHGFI_USEFILEATTRIBUTES | SHGFI_ICON | SHGFI_TYPENAME);

     

     

     

    如何在拉着对话框的边框改变大小时,让它成比例的变化.就像视频播放软件哪样

    处理wm_sizing消息

    void CTest 1Dlg::OnSizing(UINT fwSide, LPRECT pRect)

    {

      CDialog::OnSizing(fwSide, pRect);

      if((fwSide==WMSZ_BOTTOM) || (fwSide==WMSZ_TOP))

        pRect->right=pRect->left+(pRect->bottom-pRect->top)*2; 

      else

        pRect->bottom=pRect->top+(pRect->right-pRect->left)*0.5; 

    }


    VC雕虫小技集(五)
    何志丹

    1,vc中右键点击一个类或宏,可以察看他的定义,但如何返回初始地方呢?

      install visual assist, and use Alt+left arrow

       按菜单中的 后退 (<- 转45度)按钮

     好像是又打开了一个文档,关闭它就行了

     

    2,怎样获取系统菜单,并且弹出系统菜单?

    void CTestsysmenuDlg::OnOK()

    {

           // click the OK button to show system menu(masterz)

           POINT curPos;

           GetCursorPos(&curPos);

           SetForegroundWindow();

           CMenu* pMenu=GetSystemMenu(false);

           int nSelection=pMenu->TrackPopupMenu(TPM_LEFTBUTTON | TPM_LEFTALIGN |

                  TPM_BOTTOMALIGN|TPM_NONOTIFY|TPM_RETURNCMD, curPos.x, curPos.y, this);

           DWORD dwpos= curPos.x + ((curPos.y<<16)&0xffff0000);

           SendMessage(WM_SYSCOMMAND,nSelection,dwpos);

           CString msg;

           msg.Format("x:%d,y:%d; cursor.x=%d,cursor.y=%d",LOWORD(dwpos),HIWORD(dwpos),curPos.x,curPos.y);

           OutputDebugString(msg);

    }

     

    3, 如何控制键盘上面的3 个灯的亮灭 (NUM LOCK ,CAPS LOCK SRCOLL LOCK)

       #include <windows.h>

       void SetNumLock( BOOL bState )

       {

          BYTE keyState[256];

          GetKeyboardState((LPBYTE)&keyState);

          if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||

              (!bState && (keyState[VK_NUMLOCK] & 1)) )

          {

          // Simulate a key press

             keybd_event( VK_NUMLOCK,

                          0x45,

                          KEYEVENTF_EXTENDEDKEY | 0,

                          0 );

          // Simulate a key release

             keybd_event( VK_NUMLOCK,

                          0x45,

                          KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,

                          0);

          }

       }

     

       void main()

       {

          SetNumLock( TRUE );

       }

     

    4, 已经在VC的AppWizard中选择了中文后如何改为英文?

    以某文件编辑器打开资源文件,在其中查找"Language",找到后可看到入下所示:

        //Chinese (P.R.C) resources

        #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

        #ifdef _WIN32

        LANGUAGE LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED

        #pragma code_page(936)

        #endif //_WIN32

        这段代码表示当前使用的代码页为936,所代表的语种为简体中文,将以下代码用如下代码替换:

        //English (U.S) resources

        #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

        #ifdef _WIN32

        LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US

        #pragma code_page(1252)

    #endif //_WIN32

     

    5,如何有效地判断鼠标点是否在控件的矩形区域内

    DWORD dw = GetMessagePos();

           CPoint pt(LOWORD(dw),HIWORD(dw));//鼠标的屏幕坐标

           CRect r;

           GetDlgItem(IDC_EDIT1)->GetClientRect(&r);

           GetDlgItem(IDC_EDIT1)->ClientToScreen(&r);

           if(r.PtInRect(pt))

                  AfxMessageBox("在控件内");

     

    6,处理控件的右键,类向导上没有

    BOOL CCDialogDlg::PreTranslateMessage(MSG* pMsg)

    {

        if(WM_MOUSEMOVE == pMsg->message)

                  if(pMsg->hwnd == GetDlgItem(IDC_BUTTON1)->GetSafeHwnd())

                  {                    

                         UINT nFlag  = pMsg->wParam;        // 状态,如ctrl是不按下

                         int xPos = LOWORD(pMsg->lParam);  // horizontal position of cursor

                         int yPos = HIWORD(pMsg->lParam);  // vertical position of cursor

                 

                  }

           return CDialog::PreTranslateMessage(pMsg);

    }

     

     

     VC雕虫小技集(六)
    何志丹

    1,,如何取得Tree Control上的CheckBox状态~

    OnInit中加:

    m_treeCtrl.InsertItem("item1");

    m_treeCtrl.InsertItem("item2");

     

    void CCDialogDlg::OnButton1()

    {

           HTREEITEM hItem = m_treeCtrl.GetRootItem();

           while(NULL != hItem)

           {

                  CString str= m_treeCtrl.GetItemText(hItem);

                  if("item2" == str)

                  {

                         if(m_treeCtrl.GetCheck(hItem))

                                AfxMessageBox("选中");

                  }

                  hItem = m_treeCtrl.GetNextVisibleItem(hItem);

           }

    }

     

    2,怎么用一个程序向另一个程序发送字符并让其显示出来

    首先通过FindWindow取得windows程序的窗口句柄,

    然后通过GetDlgItem取得其中输入框的窗口句柄,

    最后,向该窗口句柄发送WM_CHAR消息即可显示字符

    例如,对于Notepad窗口,可以以如下的方式向其中输入一个'a':

    取得记事本的窗口句柄

    HWND hWnd = ::FindWindow( NULL  , "未定标题 - 记事本" );

    取得其中输入框的窗口句柄

    HWND hEdit = ::GetDlgItem( hWnd , 0x0F );  // 这里0x0F是编辑框的ID,可在SPY++中观察得到

    向输入框中填写'a'

    ::SendMessage( hEdit , WM_CHAR , (WPARAM)'A' , 0x00000001 );

     

    3, 当前时间:

    CTime t  = CTime::GetCurrentTime();

           CString str;       str.Format("%d-%d-%d",t.GetYear(),t.GetMonth(),t.GetDay());

           str+= t.Format("--%H-%M-%S");

           AfxMessageBox(str);

    一定要用CTime::GetCurrentTime();GetCurrentTime()是一个过时的函数.

     

    4, //改变按钮的背景色。

    HBRUSH CRectWindow2View::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

    {

           HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

                   switch (nCtlColor)

        {

            case CTLCOLOR_BTN:

             {

              CBrush Brush (RGB (128 , 0 , 128) );//你的颜色

     

              CBrush* pOldBrush = pDC->SelectObject(&Brush);

     

              pDC->SelectObject (pOldBrush );

               }

        }

            return CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

    }

     

    5, 加速键的使用.

     在Dlg的头文件中加入:

           HACCEL m_hAccel;

    在Dlg的构造函数中加载加速键:

    基于对话框的程序如何使用加速键?      

    m_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));//加速键ID

    重载PreTranslateMessage函数:

    BOOL CDlg::PreTranslateMessage(MSG* pMsg)

    {

           // TODO: Add your specialized code here and/or call the base class

           if(m_hAccel!=NULL)

                  if(::TranslateAccelerator(m_hWnd,m_hAccel,pMsg))

                         return TRUE;

           return CDialog::PreTranslateMessage(pMsg);

    }

     

    6,怎么把一个文件保存到其它地方?

    if(!CopyFile("f://he.txt","d://he1.txt",true))

           {

                  if(IDOK == MessageBox("有同名文件,你要覆盖吗?",NULL,MB_OKCANCEL))

                  {

                         CopyFile("f://he.txt","d://he1.txt",false);     

                  }

                  else

                         return;

           }

           DeleteFile("f://he.txt");


     

     
    VC雕虫小技集(七)
    何志丹

    1,图片控件

    右键属性 type : bitmap

    你直接选image也行

    IDB_BITMAP1位图的ID

    m_ctrl 是与图片控件相关联的控制型变量

    void CDlg2Dlg::OnButton1()

    {

           CBitmap bitmap1;

           bitmap1.LoadBitmap(IDB_BITMAP1);

           m_ctrl.SetBitmap(bitmap1);

    }

    void CDlg2Dlg::OnButton2()

    {

           CBitmap bitmap2;

           bitmap2.LoadBitmap(IDB_BITMAP2);

           m_ctrl.SetBitmap(bitmap2);

    }

     

    2, 什么我给控件赋变量时看不到cortrol ID?

    1,单选按钮,把group钩上.

    2,静态控件把ID改成非IDC_STATIC.

     

    3, 大小键盘的ascll码

    0-9 不同,但+,-相同.

     

    4,显示键盘输入的字符,尽量避免闪烁

    void CSdiView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)

    {

           CDC * pDC = GetDC();

           StringData += nChar;

           CRect r(0,0,0,0);

           pDC->DrawText(StringData,&r,DT_LEFT|DT_CALCRECT);

           InvalidateRect(r);

                  CView::OnChar(nChar, nRepCnt, nFlags);

    }

    void CSdiView::OnDraw(CDC* pDC)

    {

           pDC->DrawText(StringData,CRect(0,0,1000,1000),DT_LEFT);

    }

     

    5,对话框A domodal()出一个对话框B,点击B一个按钮以后,要求调用A的类中的一个函数。

     

    在b的响应函数中处理:

    ((A *)GetParent())->fun();

    在b中inlcude A所在的文件

     

    6, 删除文件夹及包含的文件

    #include <direct.h>

    void DeleteDirFile(CString sPath)

    {

           WIN32_FIND_DATA fd;

           HANDLE hFind = ::FindFirstFile(sPath + "*.*",&fd);

          

           if (hFind != INVALID_HANDLE_VALUE)

           {           

                  while (::FindNextFile(hFind,&fd))

                  {

                         //判断是否为目录

                         if (fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)

                         {

                                CString name;

                                name = fd.cFileName;

                                //判断是否为.和..

                                if ((name != ".") && (name != ".."))

                                {

                                       //如果是真正的目录,进行递归

                                       DeleteDirFile(sPath + fd.cFileName + "//");

                                }

                         }

                         else

                                DeleteFile(sPath + fd.cFileName);

                  }

                  ::FindClose(hFind);

           }

           RemoveDirectory(sPath);

    }

     

    7, 改变控件字体的大小

    LOGFONT logfont;

           CFont *pfont = m_ctrShowMessage.GetFont();

           pfont->GetLogFont( &logfont );

           logfont.lfHeight =logfont.lfHeight * 1.5;

           logfont.lfWidth  = logfont.lfWidth * 1.5;

           CFont font;

           font.CreateFontIndirect(&logfont);

           m_ctrShowMessage.SetFont(&font);

     

    8, 想用classwizard新建一个类,但发现baseclass一栏中没有我要的基类(CObList类)

    class type : Generic

    自己输入

     

    9, CTypedPtrList<CObList,CLine*>  lineList;

    为什么VC报错:

    c:/程序/scribble/scribbledoc.h(50) : error C2143: syntax error : missing ';' before '<'

    # include "afxtempl.h"

    是字符 l,不是数字1

     

    10, 不提示成员函数,怎么办?

     CString s1="dfdsf";

     s1.

    试一下以下三种方法:

    1, Build->Clean, Build->ReBuildAll.

    2,手动删除*.ncb

    3,安装辅助工具vc_assist6

     

    11, 我有6个Radio Box如何分成3组

    将三个Radio Box的 Group点上

    就分成三组了

    与焦点顺序有关

  • 相关阅读:
    linux服务器上无root权限如何安装nodejs?
    Jupyter按tab键无法补全,而且报错TypeError: __init__() got an unexpected keyword argument 'column'的解决办法
    通过损失函数优化提高训练速度、准确性和数据利用率
    华为诺亚AutoML框架-Vega:(2) 代码结构
    华为诺亚实验室AutoML框架-Vega:(1) 介绍
    AutoML: A survey of the state-of-the-art综述期刊论文免费下载
    安装Docker 图形界面管理工具 -- Portainer
    Dockfile 编写示例(将 jar 制作成容器)
    Docker 常用命令集
    云服务器CentOS安装Docker
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/2422174.html
Copyright © 2011-2022 走看看