السلام عليكم
عندي زر هذي هي الدالة حقته :
void CTetDlg::OnSll()
{
// TODO: Add your control notification handler code here
}موجود في Dialog اسمه IDD_TET_DIALOG
أريد عندما يضغط عليه المستخدم ان يفتح Dialog اسمه
IDD_SLL_DIALOG
؟
السلام عليكم
عندي زر هذي هي الدالة حقته :
void CTetDlg::OnSll()
{
// TODO: Add your control notification handler code here
}موجود في Dialog اسمه IDD_TET_DIALOG
أريد عندما يضغط عليه المستخدم ان يفتح Dialog اسمه
IDD_SLL_DIALOG
؟
بعد ما قرأت قليلاً فهمت انه يجب ان أنشء private data member من نوع ال class الخاص بـ IDD_SLL_DIALOG في ال class الخاص بـ IDD_TET_DIALOG .. ثم ماذا أكتب في هذه الدالة ؟ :
void CTetDlg::OnSll()
{
// TODO: Add your control notification handler code here
}معقولة مافيه احد يعرف ؟!
السلام عليكم
عذرا أخي على التأخير
dlgOpenFile->InitialDirectory = S"C:\\";
dlgOpenFile->Filter =
S"All Image Formats (*.bmp;*.gif;*.jpg;*.jpeg;*.tif)|"
S"*.bmp;*.gif;*.jpg;*.jpeg;*.tif|"
S"JPEGs (*.jpg)|*.jpg;*.jpeg|"
S"TIFs (*.tif)|*.tif";
dlgOpenFile->FilterIndex = 1;
if (DialogResult::OK == dlgOpenFile->ShowDialog())
{
// Display the image
}الأخ الفاضل ...
أولاً فى الملف (غالباً أسمه TetDlg.cpp) الخاص بالـIDD_TET_DIALOG، لابد من أضافة ملف التعريف الخاص بالـIDD_SLL_DIALOG، بالشكل التالى
#include "SllDlg.h"
ثم فى حدث الضغط على الزر OnSllأكتب التالى
void CTetDlg::OnSll()
{
// TODO: Add your control notification handler code here
CSllDlg dlg;
if (dlg.DoModal() == IDOK)
AfxMessageBox(_T("Its OK!"));
}بالطبع قم بتغير المسميات (الملف SllDlg.h) و الـ class الخاصه به (CSllDlg) بما يناسب المسميات فى برنامجك.
أما لفتح صندوق أختيار (فتح) أو حفظ ملف، فأستخدم التالى لفتح (Open Dialog)
void CTetDlg::OnOpen()
{
// TODO: Add your control notification handler code here
CFileDialog fd(TRUE, NULL, NULL, OFN_EXPLORER | OFN_FILEMUSTEXIST, _T("All Files(*.*)|*.*||"));
if (fd.DoModal() == IDOK)
{
AfxMessageBox(fd.GetPathName());
}
}وللحفظ أستخدم
void CTetDlg::OnSave()
{
// TODO: Add your control notification handler code here
CFileDialog fd(FALSE, NULL, NULL, OFN_EXPLORER | OFN_FILEMUSTEXIST, _T("All Files(*.*)|*.*||"));
if (fd.DoModal() == IDOK)
{
AfxMessageBox(fd.GetPathName());
}
}شكراً
تم تعديل هذه المشاركة بواسطة Eng. Usama El-Mokadem في 10 مايو 2007 في 19:59
Nothing is impossible, the word impossible itself says that: I M - Possible
شكرا لكم على الردود ، انا لا احتاج الى صندوق حفظ ملف او فتح ملف ، لكن لا مانع من زيادة الفائدة :) بارك الله فيكم .
عند تطبيق الكود التالي :
void CTetDlg::OnSll()
{
// TODO: Add your control notification handler code here
CSllDlg dlg;
if (dlg.DoModal() == IDOK)
AfxMessageBox(_T("Its OK!"));}
تفتح لي النافذة لكن يعلق الجهاز على طول ، وتكون النافذتين ( القديمة أو الأصل ) والجديدة التي أريد فتحها متداخله مع بعض ويعّلق الجهاز !
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
الأخ الفاضل ...
تأكد من حصولك واستخدامك أخر أصدار من (Service Pack) "مجانى من مايكروسوفت" خاص بـنسخة Microsoft Visual Studio التى تعمل عليها، يمكنك مراجعة موقع Microsoft Visual Studio، والتحديثات من: Microsoft Visual Studio Service Packs وأيضاً Microsoft Visual Studio Updates
شكراً
Nothing is impossible, the word impossible itself says that: I M - Possible
أستاذي الكريم اسامة
شكرا لك اولاً على الرد :)
انا استخدم ال Microsoft Visual C++ 6.0 الآن ، والبرنامج مكتوب بواسطته ، في السابق جربت النسخة الجديدة Microsoft Visual Studio 2005 لكن اغلب الشروحات كانت على النسخة Microsoft Visual C++ 6.0 وهذا سبب رجوعي له .
فهل يجب ان استخدم ال Visual Studio 2005 ؟
هذا الموضوع مغلق.