在SDK编程中ComboBox中显示数据问题(求救)

竹君子 2004-04-02 02:26:31
我在写一个sdk程序使,需要在对话框中的ComboBox里显示数据;
因为不是MFC,不能继承类,也不能直接在属性里设置,只能通过其他途径了
请问有甚么好的解决方法吗?
谢谢了
...全文
84 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
竹君子 2004-04-02
  • 打赏
  • 举报
回复
这样写对吗?
VOID NEAR AddComboBox( HWND hCtrlWnd, DWORD NEAR *npTable,WORD wTableLen)
{

int i;

for( i=0;i<wTableLen;i++)
{
SendMessage( hCtrlWnd, CB_ADDSTRING, 0,(LPARAM) (LPSTR) *(npTable + i) );
}

} // end of AddComboBox()
ymbymb 2004-04-02
  • 打赏
  • 举报
回复
是重资源中得到字符串,npTable是字符串ID的数组,比如:
DWORD BaudTable[] =
{
CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400,
CBR_4800, CBR_9600, CBR_14400, CBR_19200, CBR_38400,
CBR_56000, CBR_57600, CBR_115200, CBR_128000, CBR_256000
} ;
应为这个函数是重别的地方搬来的,有些东西用不着,你还是在第二个函数外加个循环好了
竹君子 2004-04-02
  • 打赏
  • 举报
回复
ymbymb() :你的 第二段代码我会用了,但第一段更适合吧,因为下拉框里的数据是从数据库中得到的,是一个列表
该怎么使用那
再次谢谢
ymbymb 2004-04-02
  • 打赏
  • 举报
回复
VOID NEAR AddComboBox( HWND hCtrlWnd, char* sText)
{
SendMessage( hCtrlWnd, CB_ADDSTRING, 0,
(LPARAM) (LPSTR) sText) ) ;

} // end of AddComboBox()
这个函数够简单了吧,hCtrlWnd是你的Combox的句柄, sText是你要添加的字符串,调用一次在组合框中添加一项
clife 2004-04-02
  • 打赏
  • 举报
回复
SendMessage(
(HWND) hWnd, // handle to destination window
CB_ADDSTRING, // message to send
(WPARAM) wParam, // not used; must be zero
(LPARAM) lParam // string to add (LPCTSTR)
);
竹君子 2004-04-02
  • 打赏
  • 举报
回复
不好意思,如何引用那
ymbymb 2004-04-02
  • 打赏
  • 举报
回复
VOID NEAR FillComboBox( HINSTANCE hInstance, HWND hCtrlWnd, int nIDString,
DWORD NEAR *npTable, WORD wTableLen,
DWORD dwCurrentSetting )
{
char szBuffer[ MAXLEN_TEMPSTR ] ;
WORD wCount, wPosition ;

for (wCount = 0; wCount < wTableLen; wCount++)
{
// load the string from the string resources and
// add it to the combo box

LoadString( hInstance, nIDString + wCount, szBuffer, sizeof( szBuffer ) ) ;
wPosition = LOWORD( SendMessage( hCtrlWnd, CB_ADDSTRING, 0,
(LPARAM) (LPSTR) szBuffer ) ) ;

// use item data to store the actual table value

SendMessage( hCtrlWnd, CB_SETITEMDATA, (WPARAM) wPosition,
(LPARAM) *(npTable + wCount) ) ;

// if this is our current setting, select it

if (*(npTable + wCount) == dwCurrentSetting)
SendMessage( hCtrlWnd, CB_SETCURSEL, (WPARAM) wPosition, 0L ) ;
}

} // end of FillComboBox()

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧