hur.cn - 华软网

 热门搜索

[win32 sdk]关于对话框之间的消息。

  作者:未知    来源:网络    更新时间:2011/4/17
    写的这个程序是一个usb设备的发送和接收。
    API写遇到的问题很多。
    大致描写下情况和我的思绪。
  a:  press 发送按钮(发送按钮属于一个非模态对话框)-》从edit control控件中获得一个值-》赋给变量A=》发送到listview中显示出来。

////////////华丽的分割线

这是其中的一个分支。另一个就是将变量a发送到usb设备中。并从中获得一个前往值。并把这个前往值也在listview中显示出来。

流程很简单也很清楚。
这是a进程的代码。。

char buffer1;

buffer1=GetDlgItemText(hDlg,IDC_EDIT5,NULL,mCH375_PACKET_LENGTH);    //获得数据

   
wsprintf((LPWSTR)buffer,(LPCWSTR)buffer1,(i));       
lvi.pszText =(LPWSTR)buffer;


SendMessage(hWndCus,LVM_INSERTITEM,0,(LPARAM)&lvi);      

求指导。。刚入门的api。。。各种不足。
---华软 网友回答---
运行有问题?
---华软网友回复---
增补下。hWndCus是我定义的主窗口上的listview。

mCH375_PACKET_LENGTH  是usb设备给定的一个最大数据长度

---华软网友回复---
运行的时候第一步发送到listview中显示发送数据的时候就显示内存毛病。。
---华软网友回复---
多贴代码啊,否则看不了

lvi.pszText =(LPWSTR)buffer;
你这个lvi和buffer是否是局部的?不能是局部,用new
---华软网友回复---
getdlgitemtext 第四个参数是内存缓冲区而不是长度,
---华软网友回复---
错了,第三个参数,第四个参数是缓冲区长度
---华软网友回复---
引用 4 楼 howtop2p 的回复:
多贴代码啊,否则看不了

lvi.pszText =(LPWSTR)buffer;
你这个lvi和buffer是否是局部的?不能是局部,用new

都定义的全局变量CHAR buffer[20];LV_ITEM lvi;buffer1是局部的。
---华软网友回复---
引用 6 楼 candy_huang11 的回复:
错了,第三个参数,第四个参数是缓冲区长度


弱弱的问下。是否是我没有自定义一个缓冲区的指针?
---华软网友回复---
另有一个问题。在win32 sdk中的combox 增加选择项的时候
for(int m=0;m<mCH375_MAX_NUMBER;m++)
{//填充设备序号(0-15)
itoa(m,str,10);
::SendDlgItemMessage(hDlg,IDC_COMBO2,CB_ADDSTRING,0, (LPARAM)str);
}
::SendDlgItemMessage(hDlg,IDC_COMBO2,CB_SETCURSEL,0,0);初始值为0
结果combo box只显示一个值0.没有其余选择项。。
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。