PDA

View Full Version : اضافه كردن آيتم به combo box از داخل برنامه



m_zi
شنبه 05 بهمن 1387, 09:49 صبح
سلام
خسته نباشيد
من قبلاً VB كار مي كردم ولي الان بدليل نوع كارم به VC برگشتم و نمي دونم كه چگونه به يك Combo از طريق كد نويسي آيتم اضافه كنم . در وي بي AddItem بود ميشه راهنماييم كنيد كه چگونه آيتم اضافه نموده و در اثر كليك كردن با اون آيتم در برنامه كار كنم .

منون

m_zi
یک شنبه 06 بهمن 1387, 11:43 صبح
يعني هيچ كس نيست جواب بده ؟؟؟؟

Nima_NF
یک شنبه 06 بهمن 1387, 11:51 صبح
در MFC از AddString و GetItemData و سایر متد ها که زیاد هستند می توانید استفاده کنید:



CComboBox combo;
combo.AddString("Item1");

دریافت ایندکس آیتم کنونی انتخاب شده:




int indexC = combo->GetCurSel();


ضمنا شما می توانید از طریق Add variables یک متغیر رشته ای به combobox اختصاص دهید و هرگاه که خواستید محتویات آن ها را با UpdateData دریافت کنید.




لیست متدها در این لینک:


http://msdn.microsoft.com/en-us/library/wfwech59(VS.80).aspx (http://msdn.microsoft.com/en-us/library/wfwech59%28VS.80%29.aspx)

مثال به همراه سورس کد:
http://www.codersource.net/mfc_ccombobox_example.html

موفق باشید

m_zi
یک شنبه 06 بهمن 1387, 13:44 عصر
[ممنون از جوابتون
من int indexC = combo->GetCurSel(); هم اجرا كردم ولي مي خوام محتويات آيتمي كه كليك كردم را نشان دهد نه انديس را.
ممنون ميشم راهنماييم كنيد .

A_Salimi
یک شنبه 06 بهمن 1387, 17:04 عصر
ولي مي خوام محتويات آيتمي كه كليك كردم را نشان دهد نه انديس را.

من هر وقت بخواهم محتویات یک آیتم را برگردانم همیشه از GetWindowText استفاده میکنم شما .امیدوارم منظورتان همین باشد.

Nima_NF
یک شنبه 06 بهمن 1387, 23:59 عصر
این طور که معلوم هست دو لینکی که قرار دادم اصلا نگاه نکردید...
برای این کار بیش از 20 متد وجود دارد، وقتی ایندکس را دریافت کردید می توانید از ان استفاده کنید و سایر اطلاعات را که می خواهید دریافت کنید مثلا با GetLBText:



CString str;
int lenS;

lenS;= combo->GetLBTextLen( index );
combo->GetLBText( index, str.GetBuffer(lenS) );
str.ReleaseBuffer();

یا همین طور که گفتم به شکل راحت تر :

ضمنا شما می توانید از طریق Add variables یک متغیر رشته ای به combobox اختصاص دهید و هرگاه که خواستید محتویات آن ها را با UpdateData دریافت کنید.