callback-关于在CALLBACK Wndproc中静态变量的问题

问题描述

关于在CALLBACK Wndproc中静态变量的问题

代码如下:为为什么N的值不是从编辑框中输入的值呢??

 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static int N;
    static HWND hEdit,hButton;
  char szBuffer[10];
    HDC hdc;
    PAINTSTRUCT ps;

    switch (message)
    {
    case WM_CREATE:
        hEdit = CreateWindow(TEXT("edit"),
            NULL, WS_CHILD | WS_VISIBLE|WS_BORDER,
            0,0,0,0,
            hwnd, (HMENU)ID_EDIT, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
        hButton = CreateWindow(TEXT("Button"),
            TEXT("Button"), WS_CHILD | WS_VISIBLE,
            500, 300,
            7* cxChar, 2 * cyChar,
            hwnd, (HMENU)ID_Button,((LPCREATESTRUCT)lParam)->hInstance, NULL);
        return 0;
    case WM_SIZE:
        MoveWindow(hEdit, cxClient - 100, 2 * cyChar,
            10 * cxChar, 2* cyChar, TRUE);
        return 0;
    case WM_COMMAND:
        switch (LOWORD(wParam))
        {
        case 1:
            //SetFocus(hEdit);
        GetDlgItemText(hwnd, ID_EDIT, szBuffer, TRUE);
        N=atof(szBuffer);
            break;
        case 2:
            InvalidateRect(hwnd, NULL, TRUE);
            break;
        }
        return 0;

解决方案

CWnd::GetDlgItemInt

http://msdn.microsoft.com/zh-cn/library/c7t43w0s.aspx

它将指定控件的文本在特定对话框的转换为整数值通过去除所有多余空格在该文本的开头和转换十进制数字。 在到达结尾的文本或遇到任何非数值字符时,终止平移。

解决方案二:

atoi吧。atof是转换成浮点数

解决方案三:

另外可以直接用GetDlgItemInt

解决方案四:

http://msdn.microsoft.com/zh-cn/library/c7t43w0s.aspx

它将指定控件的文本在特定对话框的转换为整数值通过去除所有多余空格在该文本的开头和转换十进制数字。 在到达结尾的文本或遇到任何非数值字符时,终止平移。

解决方案五:

atoi() 转换成int

时间: 2024-10-19 14:07:37

callback-关于在CALLBACK Wndproc中静态变量的问题的相关文章

android-Android中静态变量(activity的副本)内存泄露的问题

问题描述 Android中静态变量(activity的副本)内存泄露的问题 具体情境是:整个APP一步一步那样会进入多个activity,类似于注册的一个一个步骤, 由于是这样我设定每个activity跳转到另外一个的时候不finish,因为要保证可以退回到上 一步,所以我弄了每个activity里面都有一个static Activity mActivity的变量在onCreate 的时候mActivity=this,这样我就可以在一个Activity里面直接取到其他activity当前的情况,

java中静态变量的生存周期或范围

问题描述 java中静态变量的生存周期或范围 在一个类里main方法中实现多个实例,会共享静态变量并可修改静态变量,但是在另一个类里main方法中再实现前面那个类的实例,静态变量又回到初始值了- 解决方案 变量就是变量的,它不可能保存起来共两个main共享的:其实两个main的话,你一个一个的执行,程序也是从上执行到下的,你顺着这个顺序看看你的程序你就 明白了,这个和静态变量是没有什么关系的:你在两个main里实现的实例是两个不同的对象这点你记清楚: 如果回答对你有帮助,请采纳 解决方案二: 这

PHP中静态变量的使用方法实例分析_php技巧

本文实例讲述了PHP中静态变量的使用方法.分享给大家供大家参考,具体如下: 1.定义静态变量 public static $endpoint,$accessKeyId,$accessKeySecret,$bucket; 2.静态变量赋值 protected function _initialize() { self::$endpoint = C('OSS_ENDPOINT'); self::$accessKeyId = C('OSS_ACCESS_ID'); self::$accessKeySe

asp.net中静态变量和非静态变量的区别

静态变量:静态变量使用 static 修饰符进行声明在所属类被装载时创建通过类进行访问所属类的所有实例的同一静态变量都是同一个值非静态变量:不带有 static 修饰符声明的变量称做非静态变量在类被实例化时创建通过对象进行访问同一个类的不同实例的同一非静态变量可以是不同的值示例: [复制到剪贴板]CODE: using System;using System.Collections.Generic;using System.Text;namespace Example01{    class P

java中静态变量和实例变量的区别详细介绍_java

运行效果: 控制台效果: ================================================== 代码部分 ================================================== /hello_test/src/com/b510/test/StaticTest.java 复制代码 代码如下: /**  *   */ package com.b510.test;  /**  * 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实

java非静态方法可以调用静态变量吗?

问题描述 java非静态方法可以调用静态变量吗? 初学java,看到书上的编纂,可能出现了错误. 第二版(中文版)284页中原话: 问:非静态的方法可以存取静态的变量吗? 回答:当然可以.非静态方法不可以调用该类静态的方法或静态的变量. 实在是头大,网上查询都说非静态方法可以调用静态的方法和变量.但我自己试了一下 class Duck{ private int size; static int duckCount=0; public Duck(){ duckCount++; } } public

有关于java中静态的问题?

问题描述 有关于java中静态的问题? 我想知道在java中的静态方法是有什么作用的?它和普通方法有什么不一样? 解决方案 A,静态对象的数据在全局是唯一的,一改都改.如果你想要处理的东西是整个程序中唯一的,弄成静态是个好方法. 非静态的东西你修改以后只是修改了他自己的数据,但是不会影响其他同类对象的数据. B,引用方便.直接用 类名.静态方法名 或者 类名.静态变量名就可引用并且直接可以修改其属性值,不用get和set方法. C,保持数据的唯一性.此数据全局都是唯一的,修改他的任何一处地方,在

C++之类的静态变量_C 语言

成员变量 通过对象名能够访问public成员变量 每个对象都可以有只属于自己的成员变量 成员变量不能在对象之间共享 类的静态成员 静态成员变量 存储在 全局数据区 #include<stdio.h> class Test { private: ///静态成员变量访问权限 static int c1; public: static int GetC1() { return c1; } static void SetC1(int i) { c1=i; } void print() //普通成员函数

《Java程序员面试秘笈》—— 面试题9 对于类的静态变量的理解

面试题9 对于类的静态变量的理解 运行下面程序,请选择输出结果. public class x { private static int a; public static void main(String[] args) { modify(a); System.out.println(a); } public static void modify(int a) { a++; }} (a)0 (b)1 (c)2 (d)3 考点:考察求职者对于类的静态变量的理解. 出现频率: [面试题解析]类的静态