الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال فى الapi

مغلق
بدأه eng_3llam في 29 أبريل 2005 · 12 رد · 1,055 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم

فانا مبتدى فى الapi وقد عملت form ولكن اريد عمل text box وboutton على الفورم بحيث ادخل اى بيانات تخزن فى file

وذلك عند عمل click على الboutton وهذا بال borland c++5.2v

not mfc or vc

وشكرا وهذا الملف المرفق بة الفورم وهذا محاولتى

my work.rar

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#2
#include <windows.h>
 void cmAbout(void);

HINSTANCE hInst;
DLGPROC   lpDlgProc;                    // ptr to proc for dialog box
HWND      hDlgBox;
bool RegisterMyWindow(HINSTANCE hApp);
BOOL CALLBACK _export DlgBoxProc(HWND hDlg, UINT message,WPARAM wParam, LPARAM lParam);
bool CreateMyWindow(HINSTANCE hApp);
long _stdcall MohProcWin(HWND hWnd,unsigned int MessageId,WPARAM wParam,LPARAM lParam);


int _stdcall WinMain(HINSTANCE hApp,HINSTANCE hPrev,LPSTR CommandLine ,int Order){

	if ( RegisterMyWindow(hApp) == false)
    MessageBox(NULL,"Can't Register Windows","Error",MB_OK);


   if ( CreateMyWindow(hApp) == false)
    MessageBox(NULL,"Can't Create Windows","Error",MB_OK);

   MSG msg;
   int Result = 1;
   while (Result != 0){
       HACCEL hACCEL=LoadAccelerators(hApp,LPCSTR(1));
       TranslateAccelerator(hDlgBox,hACCEL,&msg);
    Result = GetMessage(&msg,NULL,0,0);

      TranslateMessage(&msg);
      DispatchMessage(&msg);

   }

   return 0;
}



bool RegisterMyWindow(HINSTANCE hApp){

	WNDCLASS wc;
   wc.style = 0;
   wc.hInstance = hApp;
   wc.lpszClassName = "MyNewWindow";
   wc.lpszMenuName = (LPCSTR)1;
   wc.lpfnWndProc = MohProcWin;
   wc.cbClsExtra = wc.cbWndExtra = 0;
   wc.hIcon = LoadIcon(hApp,(LPCSTR)2);
   wc.hCursor = LoadCursor(NULL,(LPCSTR) IDC_ARROW);
   wc.hbrBackground = (HBRUSH) ( COLOR_WINDOW + 1);

   if (! RegisterClass(&wc) )
    return false;

   return true;
}

bool CreateMyWindow(HINSTANCE hApp){

	HWND hWnd = CreateWindow("MyNewWindow","Mohammed Allam New Window ... zzzzzzzzz",
            WS_OVERLAPPEDWINDOW,
                           CW_USEDEFAULT,
                           CW_USEDEFAULT,
                           CW_USEDEFAULT,
                           CW_USEDEFAULT,
                           NULL,
                           NULL,
                           hApp,
                           0);
 HWND  hWndEdit = CreateWindowEx (WS_EX_DLGMODALFRAME  | WS_EX_CLIENTEDGE,
       	 "EDIT",
       	 0,
       	 WS_CHILD | ES_AUTOHSCROLL |	ES_AUTOVSCROLL | ES_MULTILINE | ES_WANTRETURN,
       	 CW_USEDEFAULT,
       	 CW_USEDEFAULT,
       	 CW_USEDEFAULT,
       	 CW_USEDEFAULT,
       	 NULL,
       	 NULL,
       	 hApp,
       	 0);
   SetWindowText( hWndEdit,"c  ");

  ShowWindow(hWndEdit, WS_VISIBLE);

   if (hWnd != 0){
  ShowWindow(hWnd,SW_SHOW);
    return true;
   }

   return false;
}

long _stdcall MohProcWin(HWND hWnd,unsigned int MessageId,WPARAM wParam,LPARAM lParam){
	switch(MessageId){
    case WM_CLOSE:
     	 PostQuitMessage(0);
         break;
      case WM_COMMAND:
        if(LOWORD(wParam)==101)
          {
             MessageBox(NULL,"Can't Register Windows","Error",MB_OK);

          }
          else
          {
                if(LOWORD(wParam)==108)
            PostQuitMessage(0);
          }
         //  ExitWindowsEx(EWX_LOGOFF,0);
         break;
         if (MessageId == WM_INITDIALOG)
         {
        return(TRUE);}

    else if (MessageId == WM_COMMAND)
    {

      case IDOK:
    EndDialog(hWnd, TRUE);
    return(TRUE);
    }

    return(FALSE);


      default:
     	 return DefWindowProc(hWnd,MessageId,wParam,lParam);
   }
}
BOOL CALLBACK _export DlgBoxProc(HWND hDlg, UINT message,
         WPARAM wParam, LPARAM lParam)
{

    switch (message)
    {
  case WM_INITDIALOG:
      return TRUE;

  case WM_SYSCOMMAND:
      // Pass WM_SYSCOMMAND messages on to main window so both
      // main window and dialog box get iconized, minimized etc.
      // in parallel.
      //SendMessage(hwnd, message, wParam, lParam);
      break;

  case WM_COMMAND:
      // regardless of the command (only ID_OK should arrive)
      // we want to exit the dialog
      EndDialog(hDlg, TRUE);
      break;

  default:
      return FALSE;
    }  // switch

    return(TRUE);
}  // end of DlgBoxProc()

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#3

no reply....!

:P

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#4

عليكم السلام

وجدت مثال يشرح لك ماتريد من ادوات التحكم ..

لا اعرف هل تستطيع فتحه بـ borland لان المثال مصمم على vc

على العموم ما يفيدك هو

// window handles (unsigned long)'s
HWND testwin;
HWND aboutwin;
HWND static_label;
HWND static_image;
HWND edit;
HWND list;
HWND button;
HWND combo;

وهي متغيرات عامة

ثم

====

static_label = CreateWindow("Static","This static label",WS_CHILD | WS_VISIBLE,205,0,200,25,hwnd,0,g_hInst,0);

edit = CreateWindow( "Edit","A Windows Edit Box",WS_BORDER | WS_VSCROLL | WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL,5,35,200,200,hwnd,(HMENU)ID_EDIT,g_hInst,0);

list = CreateWindow("ListBox",NULL, LBS_NOTIFY | WS_CHILD | WS_VISIBLE | WS_VSCROLL|WS_BORDER,5,250,200,200,hwnd,(HMENU)ID_LIST,g_hInst,0);

button = CreateWindow("Button","About",BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE ,350,5,100,25,hwnd,(HMENU)ID_BUTTON,g_hInst,0);

static_image = CreateWindow("Static",NULL,WS_CHILD | WS_VISIBLE | SS_BITMAP,350,40,0,0,hwnd,(HMENU)ID_IMAGE,g_hInst,0);
 	 SendMessage(static_image,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)(HBITMAP)LoadBitmap(g_hInst,MAKEINTRESOURCE(IDB_BITMAP1)));


combo = CreateWindow("ComboBox",NULL,WS_BORDER | CBS_DISABLENOSCROLL | WS_CHILD | CBS_DROPDOWNLIST | WS_VISIBLE,350,400,200,200,hwnd,(HMENU)ID_COMBO,g_hInst,0);

SendMessage(combo,CB_ADDSTRING,255,(LPARAM)(LPCSTR)"addstuff");

====

دالة واحدة التي تصنع الادوات

وانا لم افهم جيدا البارمتر التاسع تقريبا وهو

(HMENU)ID_BUTTON

فبعض الامثلة تصير null ولكن على حسب مافهمت انها تطلب

const int

وبالتالي ننشئ const int جديد مثلا

const int  ID_BUTTON = 10;

ضع اي عدد..

----

ثم نعالجها بالرسائل

case BN_CLICKED:
    switch(LOWORD(wParam))
    {
    case ID_BUTTON:
   	 {
      // code
      SendMessage(list,LB_ADDSTRING,255,(LPARAM)(LPCSTR)"You clicked the button");
      SendMessage(combo,CB_ADDSTRING,255,(LPARAM)(LPCSTR)"You clicked the button ");
      ShowWindow(aboutwin,SW_SHOW);
   	 }
   	 break;

    }
    break;

ممكن تكون فاهمها ولكن زيادة الخير خيرين .... :B

واتمنى تقولي اذا مااشتغل المثال

سلام

code_upload138121152001.zip

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#5

شكرا يأخى الشمرى الكود تمام وشغال

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#6

وجدت هذا المثال رح يفيدك

http://www.gameprogrammer.org/downloads/w32_basicui.zip

وهنا شرحه

http://www.gameprogrammer.org/main.php?page=tutorials&no=26

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#7

جزاك الله خيرا

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#8

بسم الله الرحمن الرحيم

أريد كيفية فتح ملف والقراءة منة وذلك بالapi ولكن الدوال المستخدمة من الc++ or c زى

fwrite |fread|read|write

وليس دوال الapi أى ان الinterface بال api والدوال المستخدمة بالسى

وشكرا

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#9

no reply to me....! :(

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#10

ياجماعة بليز لو تكرمتم حد يجاوب على سؤالى فى الapi

وهو

أريد كيفية فتح ملف والقراءة منة وذلك بالapi ولكن الدوال المستخدمة من الc++ or c زى

fwrite |fread|read|write

وليس دوال الapi أى ان الinterface بال api والدوال المستخدمة بالسى

وشكرا

Muhammad Allam

Computer Science

@Resource(MappedURL="My Blog" )

#11

عفوا على التاخير .ساحاول الليلة باذن الله...

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#12

طيب ليه مش بتستخدم

fopen , fread ,...

أو

open,read,....

او الكلاسات الخاصه بالسي++

ولم لا تستخدم دوال ال API

؟

عموما بالنسبه للسؤال الأول كل اللي محتاجه انك حتعمل createwindow بس الكلاس حتكون موجوده مش محتاجه منك انك تعملها ريجيستر وهي اما EDIT أو BUTTON ....

انظر في مكتبة ال MSDN في دالة Createwindow

كما ستحتاج ان تعطيها خاصية child

والباقي كأنك بتنشئ نافذه جديده بالضبط

#13

السلام عليكم

هذا ماطلبت واسف على التاخير

--

استخدمت fopen للقراءة من ملف

الفكرة بسيطة

نقرأ الملف

char string[256] = {0};//تخزين محتوى الملف
FILE *fp;//new

.
.
.
  	fp = fopen("test.txt", "r");//افتح الملف للقراءة

  if(fp == NULL)
  {
  	MessageBox(hWnd,"wrong","worning",MB_OK);
  	exit(1);// This is tell the program to stop executing.
  }
  	fgets(string, sizeof(string), fp);//اقرا الملف وخزن محتوياته في المصفوفة string
  	fclose(fp);//اغلق الملف

كل ماسبق خاص بالسي وهو سهل جدا ..

----

الان قرأنا الملف المراد.... وهوtext.txt

وخزنا محتوياته عن طريق

  	fgets(string, sizeof(string), fp);//اقرا الملف وخزن محتوياته في المصفوفة string
واذا كان محتوى  الملف اكثر من سطر نغير التالي
   char string[10][256] = {0};
.
.
   for(i = 0; i < 10; i++)
      {
       fgets (string, sizeof(string), fp);
      }
.
.

---

المهم ماتريده القراءة من ملف وتخزينه في صندوق النص

الان قرانا الملف وخزناه في مصفوفة ... نغير محتوى صندوق النص كالتالي

SetDlgItemText(hWnd,EDT_MESSAGE,string);

بس!!!

--

اما اذا اردت تخزين محتوى صندوق النص في مستند نصي كل ماعليك تخزين محتوى الصندوق في متغير

ثم كتابة ذلك النص في الملف

fopen("TEST2.txt", "w")

الكتابة

fprintf(fp, string);

الملف المرفق

يحتوي على مثال

يقرا من ملف وينسخه في صندوق النص

يحصل على محتوى الصندوق ويكتبه في ملف txt

واسف على الاطالة .. :)

alshammari.zip

تم تعديل هذه المشاركة بواسطة الشـمري في 2 مايو 2005 في 16:29

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

هذا الموضوع مغلق.

مواضيع مشابهة