English 中文(简体)
• 如何把职能从++的另一项职能上调?
原标题:How to call a function from another function in c++?
  • 时间:2010-06-02 05:04:29
  •  标签:
  • visual-c++

我在申请档案中载有这一职能定义;

    LRESULT CRebarHandler::onSetRedraw(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
    {
     bHandled=false;
     if (m_ieVer==6){
      if (!m_hWndToolbar)
      scanForToolbarSlow();
     }
    return S_OK;
   }

我的问题是,我不知道如何把它从同一档案中的另一功能中说出来。 我想从这一职能中提一下:

 void CRebarHandler::setButtonMenu2(){
 bool b=false;
 onSetRedraw(0,0,0,false);   <------ is this the correct way?
}

我是否应该提供所有4项价值观? 难道我没有价值吗?

帮助我。

问题回答

是的,你如何界定你必须为所有参数提供价值。 此外,最后的参数必须是可变的,因为你将这一参数定义为通过参考。

如果出现这样的情况,如果你真心不sil,而且你也好像你那样做,以补足一切,那么你就能够以这些价值来提供定义,如:

LRESULT CRebarHandler::onSetRedraw(UINT uMsg=0, WPARAM wParam=0, LPARAM lParam=0, BOOL& bHandled)  
    { 

(注:你可以提供因参考而导致的违约。) 这表明,你经常想要加以修改,因此必须是一个可变的变量。

然后,你可以这样说:

onSetRedraw(false)

另一种选择是,在没有其中任何参数的情况下,仅再复制例行公事。 如果您希望能将其编成<条码> 私人,那么只有该类成员才能打电话。

所有这一切都取决于功能原型,如果存在超负荷的缺损弹,你就迫切需要从功能中提供价值。 如果是牙齿,你需要所有四个参数。

由于这两种方法似乎都属于同一类别,你所显示的方法*应当奏效。

无,最后一个参数是参考值,因此,你需要提供变数而不是价值(稍微更准确地说,你需要提供微值而不是高值):

void CRebarHandler::setButtonMenu2(){
  bool b=false;
  onSetRedraw(0,0,0,b);   // note the change here
}

你的榜样,你必须提出所有论点。 但可以提出不实的论点,以便你不必这样做。 尽管如此,C++的规则要求你在第一个数值之前就最后参数提出不实的理由。 由于必须用变数/升值来初步参考,因此这样做是难得的。

I think you should refactor your code. It becomes much more reusable. There is almost nothing on your onSetRedraw function needing the parameters, so it turns out to be even easier to Extract a method from there.

    void CRebarHandler::scan()
    {
     if (m_ieVer==6){
      if (!m_hWndToolbar)
       scanForToolbarSlow();´
     }
    }

    LRESULT CRebarHandler::onSetRedraw(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
    {
     bHandled=false;
     scan();

     return S_OK;
   }



   void CRebarHandler::setButtonMenu2()
   {
     bool b=false;
     scan();
   }




相关问题
how to reliable capture display setting changed

static void Main() { // Set the SystemEvents class to receive event notification when a user // when display settings change. SystemEvents.DisplaySettingsChanged += new ...

Why use CComBSTR instead of just passing a WCHAR*?

I m new to COM. What exactly is the advantage of replacing: L"String" with CComBSTR(L"String") I can see a changelist in the COM part of my .NET application where all strings are replaced in this ...

COM Basic links

folks can you provide me the tutorial link or .pdf for learning basic COM?. i do google it.. still i recommend answers of stackoverflow so please pass me.. Thanks

Statically linking Winsock?

I m using Winsock 1.1 in my project. I include wsock32.lib in "Additional Dependencies". I m looking at the DLL project using depends.exe and notice that the DLL depends on wsock32.dll. How can I ...

热门标签