none
colorDialog怎么使用 RRS feed

  • 问题

  • colorDialog的使用,MSDN上介绍的方法在visual studio C++ 2008 express 版本 和visual studio C++ 2008 正式版都是了,不行,不知道是怎么回事,哪位帮忙看下。我的操作步骤是这样的:

    新建,项目,visual C++  CLR项目,window窗体应用程序,取了个名字,确定。

    拖放一个按钮 button1 和一个colorDialog1控件,在button1单击事件中写代码,实现改变按钮颜色,根据MSdn上提供的代码

        if(colorDialog1->ShowDialog() == DialogResult::OK)
          {
             button1->BackColor = colorDialog1->Color;
          }

    试试不能通过,不知道怎么回事,提示一下错误

    error C2039: “OK”: 不是“System::Windows::Forms::Form::DialogResult”的成员

    error C2065: “OK”: 未声明的标识符

     

    请问是怎么回事?

    现在我想实现,打开颜色对话框,选择颜色后,

    点 确定 生效

    点 取消 什么都不做

    应该怎么实现?谢谢

    2011年1月5日 14:30

答案

  •     if(colorDialog1->ShowDialog() == DialogResult::OK)

    您好,

         真的用心了,error C2019 表示class ,structure 或 union成员的不恰当调用。如以下代码就会产生此错误:

    // C2039_c.cpp
    // compile with: /clr /c
    ref struct S {
      property int Count {
       int get();
       void set(int i){}
      };
    };
    
    int S::get_Count() { return 0; }  // 产生C2039错误,因为get_Count()不是S的成员。
    int S::Count::get() { return 0; }  // OK
    
    
    

    请把DialogResult::OK改成::System::Windows::Forms::DialogResult::OK。

    如果您的问题解决了,请把有用的回答标记为答案。

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年1月7日 4:58
    版主

全部回复

  • 从错误提示看是OK的问题

    你检查一下OK的大小写

    另外可以用VS的智能提示找一下System::Windows::Forms::Form::DialogResult下都有哪些定义

    2011年1月6日 2:42
  • 大小写没问题,操作都是只有几种 只有OK是代表 是 的意思


    aaa
    2011年1月6日 13:54
  •     if(colorDialog1->ShowDialog() == DialogResult::OK)

    您好,

         真的用心了,error C2019 表示class ,structure 或 union成员的不恰当调用。如以下代码就会产生此错误:

    // C2039_c.cpp
    // compile with: /clr /c
    ref struct S {
      property int Count {
       int get();
       void set(int i){}
      };
    };
    
    int S::get_Count() { return 0; }  // 产生C2039错误,因为get_Count()不是S的成员。
    int S::Count::get() { return 0; }  // OK
    
    
    

    请把DialogResult::OK改成::System::Windows::Forms::DialogResult::OK。

    如果您的问题解决了,请把有用的回答标记为答案。

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年1月7日 4:58
    版主
  • 虽然解决了问题,但是你给的那个例子,小弟不才,没看明白
    aaa
    2011年1月7日 9:41