小编Myo*_*tis的帖子

列表框通知

我有两个控件的对话框:树视图列表框.我的对话框也有消息处理程序.

 case WM_NOTIFY:
        {  
          switch(LOWORD(wParam)) 
            {
                case IDC_LIST1: //we NEVER comes here
                      if(((LPNMHDR)lParam)->code == NM_CLICK)
                      {
                          //do some work; 
                          return (INT_PTR)TRUE; 
                      }
                      break; 
                case IDC_TREE1: 
                      if(((LPNMHDR)lParam)->code == NM_DBLCLK)
                      {
                         //do some work;
                         return (INT_PTR)TRUE;  
                      }
                      break;
            }
        }
        break;
Run Code Online (Sandbox Code Playgroud)

所以,我无法理解为什么来自树盒的通知成功,但来自列表框的通知永远不会出现,尽管事实上在列表框的属性'控制通知值设置为TRUE.谢谢.

c++ winapi visual-studio-2010

5
推荐指数
1
解决办法
2797
查看次数

使用十进制数转换

可能它是C程序员最简单的事情之一,但我真的无法得到它.

unsigned char Value[4]; 
unsigned long ulVer = 00010001;
unsigned long uSize = sizeof(ulVer);
memcpy(Value, &ulVer, uSize);
memcpy(&ulVer, Value, uSize); 
printf("%d",ulVer); 
Run Code Online (Sandbox Code Playgroud)

为什么ulVer是4097而不是10001?

c

3
推荐指数
1
解决办法
117
查看次数

堆栈的局部变量

void Test2()
{   
    int c=8;
    int b=7;
    int d=9;
    int *a; 

    a = &b;
    a+=sizeof(int); //I supposed that *a should points on variable d after this 

    cout << "b\t" << &b << "\t" << b << endl;
    cout << "a\t" << a  << "\t" << *a << endl;
    cout << "c\t" << &c  << "\t" << c << endl;
    cout << "d\t" << &d  << "\t" << d << endl;
}
Run Code Online (Sandbox Code Playgroud)

我认为*a应该指向变量d,因为bd(我认为)位于局部变量堆栈附近.但*在另一个地址上有一个点,所以 …

c c++ pointers visual-studio-2010

3
推荐指数
2
解决办法
304
查看次数

运算符的重载:确定MSVS但在g ++中失败

我有在Visual Studio 2010中无错误编译的代码.但是g ++会出错

CComplex.cpp: In member function 'Complex Complex::operator+(Complex&)':
CComplex.cpp:22: error: no matching function for call to 'Complex::Complex(Complex)'
CComplex.cpp:15: note: candidates are: Complex::Complex(Complex&)
make: *** [CComplex.o] Error 1
Run Code Online (Sandbox Code Playgroud)

请告诉我我的代码有什么问题.

Complex.h

class Complex
{
public:
  Complex();
  Complex(double _Re, double _Im);
  Complex(Complex& c);
  Complex operator+(Complex& num);
  inline double& fRe(void){return Re;}
  inline double& fIm(void){return Im;}
protected:
  double Re;
  double Im;
}
Run Code Online (Sandbox Code Playgroud)

Complex.cpp

Complex::Complex(){
    Re = 0.0;
    Im = 0.0;
}
Complex::Complex(double re, double im){
    Re = re;
    Im = im;
}
Complex::Complex(Complex& …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

0
推荐指数
1
解决办法
117
查看次数