HBITMAP CPicDrawC::LoadPicture(CComboBox* pCombo,CString mFile)
{
int n = pCombo->AddString("nu"); 
HBITMAP hbmp = (HBITMAP)LoadImage(NULL, mFile, IMAGE_BITMAP, PicSizeX, PicSizeY, LR_LOADFROMFILE |        LR_CREATEDIBSECTION);
pCombo->SetItemData(n, (DWORD)hbmp); 
return hbmp;}請問大家這段程式可以解說明白ㄇ?有點不是很懂
(1)為什麼加pCombo->AddString("nu");去讀字串un呢?(2)HBITMAP hbmp = (HBITMAP)LoadImage(NULL, mFile, IMAGE_BITMAP, PicSizeX, PicSizeY, LR_LOADFROMFILE |        LR_CREATEDIBSECTION);
這段loadImage裡面的參數的位置寫法是制式固定嗎?分別裡面參數代表什麼意義呢?尤其是最後兩個LR(3)以及 pCombo->SetItemData(n, (DWORD)hbmp); 
return hbmp;
這兩句?return回傳什麼呢?
迷途小书童可以跟我聯絡ㄇ?

解决方案 »

  1.   

    1.在CComboBox中添加一项“nu”,并且返回序号;
    2.从mFile指定的文件中读取图片,具体请查看MSDN;
    3.将读取图片的句柄赋值给1中所添加的项,保存以备它用;
      

  2.   

    前面的问题楼上已经回答。
    最后的return hbmp返回位图的句柄,其实这个句柄也可以从ComboBox里面再取出来,只是再取出来的时候,有需要获取序号,就直接传回句柄了。
    如果把这个函数返回值改成返回索引号的话,所不定也很简单。
      

  3.   

    fbinhf你好很謝謝你的解說
    可是我是初學對於(1)(3)的部分還不是很清楚耶,不好意思
    (1)在CComboBox中添加一项“nu”,并且返回序号;為什麼要在CComboBox中添加一项“nu"呢?回傳的
    序号?
    (2)将读取图片的句柄赋值给1中所添加的项:句柄赋值??不懂,給1是給誰??不好意思問的很沒深度,我真很想徹底了解
    麻煩你了
      

  4.   

    CComboBox中有一个下拉列表,int n = pCombo->AddString("nu"); 就是向此列表中添加一行"nu"字符串,并且返回该行在列表中的序号,保存在变量n中.pCombo->SetItemData(n, (DWORD)hbmp); 将图片句柄赋值给上面添加行,MSDN中的解释是:
    Sets the 32-bit value associated with the specified item in a combo box.
      

  5.   

    楼主要做一个什么样的项目?是不是要遍历某个文件夹下面的所有图片,然后用ComboBox(组合框)显示出来?1.AddString是向ComboBox中添加一条记录,IE的地址栏就是一个ComboBox,当你访问了一个新的网址,这个网址就自动添加到了地址栏的下拉列表里,这个过程差不多就是AddString来实现的;2.LoadImage是把一幅图片加载到内存中,返回一个句柄(HBITMAP),以后我们操作这个图片数据时就可以直接使用这个句柄了。
    NULL, mFile, IMAGE_BITMAP, PicSizeX, PicSizeY, LR_LOADFROMFILE | LR_CREATEDIBSECTION
    第一个参数表示你要加载的那个图片资源在哪个模块中,一般是AfxGetInstanceHandle,表示图片资源就在本程序中。这里你需要从其它文件中加载,它不属于任何进程或模块,所以是NULL;
    第二个参数:如果最后一个参数不包含LR_LOADFROMFILE,那么这个参数是资源ID例如IDB_BITMAP1等,又因为本参数需要一个字符串,所以用MAKEINTRESOURCE把它强制转换成一个字符串指针,但并不影响使用;如果最后一个参数包含LR_LOADFROMFILE,那么这个参数表示你要加载的图片文件的路径;
    第三四个参数表示你希望这个图片加载进来后的宽度和高度(如果指定数值比实际尺寸小,图片可能会被裁剪???);
    最后一个参数中LR_LOADFROMFILE表示从文件加载图片而不是从模块的资源中,LR_CREATEDIBSECTION表示加载图片时不要受当前显示设备的影响(???)3.ComboBox下拉列表里的每一项,都可以记录一个4字节的数据(ItemData),这个数据由用户自定义使用。例如第二项是个文件夹的名称,这个文件夹下面有5个文件,那么可以SetItemData(1,5)记住这个信息,以后可以用GetItemData获得,这个ItemData作任何用途都可以。建议楼主在遇到问题后,做的第一件事就是去查阅MSDN,那上面有比我更详细准确的解释
      

  6.   

    百度百科也有AddString的解释:http://baike.baidu.com/view/2078035.htm
      

  7.   

    LoadImage:http://baike.baidu.com/view/1080246.htm