Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Офф-топ

Страница: 1 | 2 |

 

  Вопрос: Need HELP вопросы С++ ! :) Добавлено: 17.12.05 19:31  

Автор вопроса:  HACKER
1) Компонент Open Dialog (Save Dialog) характеристика, назначение, обзор свойств и методов

(Может хелп у кого есть внятный, или ссылку...)

2) два батона, клик на один рисует 4 круга на форме синего цвета, клик на второй - рисует 3 элипса красного цвета...


Мне ГОРИТ !

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 SerJ



Вопросов: 24
Ответов: 332
 Профиль | | #1 Добавлено: 17.12.05 20:10
Мне ГОРИТ !


Понимаю, понимаю.... :-(
Самый надёжный способ добыть то, что тебе надо по всем вопросам программирования на ВБ(и не только :-( ) - очень занимательная (и полезная :-( ) книгаЮ которую легко найти по адресу http://www.citforum.ru/howto/smart-questions-ru.shtml

:-)))))

Ответить

Номер ответа: 2
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #2 Добавлено: 17.12.05 20:17
Все круги и эллипсы рисуются одной функцией Arc

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 17.12.05 20:31
2 HOOLIGAN

можно пример?

Ответить

Номер ответа: 4
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #4
Добавлено: 17.12.05 20:46
Вот думаю начнет HOOLIGAN домашнее задание делать, в очередной раз:)

А если серезно HACKER, возми книгу(она с примерами) Программирование для Windows 95 -Ч. Петзолд. Книжка хоть и старенькая но классика и для начинающих по прежнему лучшая(ИМХО). По ней можно сказать все учились под винду программировать. Там как раз С, правда без ++, но это не суть важно.
В сети наверняка где - нить валяется.

Там ответы на все твои вопросы с примерами и подробным описанием.

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 17.12.05 21:10
не, ну вот это я бы так людей доставал с ВБ, когда аналогичной сложности вопросы давали... пойди туда-то, почитай как вопросы задавать надо, другой про книгу какую-то, классику итп, хулиган наменул тремя буквами :) "Arc" но я по ним ничего не нёшёл. У вас больше времени отняло постить флуд на форуме, чем написать 2-3 строчки для примера... неужели сложно?

Ответить

Номер ответа: 6
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #6
Добавлено: 17.12.05 21:42
Windows способна отображать прямые линии (отрезки), эллиптические кри-вые и сплайны Безье. В Windows 95 поддерживаются семь функций для рисования линий. Это функции LineTo (отрезки прямых), Polyline и PolylineTo (ряды смежных отрезков прямой, ломаные), PolyPolyline (множественные ломаные), Arc (дуги эллипса), PolyBezier и PolyBezierTo. (Windows NT под-держивает еще три функции рисования линий — ArcTo, AngleArc и PolyDraw. Эти функции не поддерживаются в Windows 95.) Пять атрибутов контекста устройства влияют на представление линий, созданных с использованием этих функций: текущая позиция пера (только для функций LineTo, PolylineTo и PolyBezierTo), перо, режим фона (для несплошных перьев), цвет фона (для режима фона OPAQUE) и режим рисования.
По причинам, которые мы обсудим ниже, в данном разделе будут также рассмотрены функции Rectangle, Ellipse, RoundRect, Chord и Pie, хотя эти функции закрашивают замкнутую область и рисуют линии.


В функции Arc, Chord и Pie передаются одинаковые параметры:
Arc (hdc, xLeft, yTop, xRight, yBottom,
     xStart, yStart, xEnd, yEnd);
Chord (hdc, xLeft, yTop, xRight, yBottom,
     xStart, yStart, xEnd, yEnd);
Pie (hdc, xLeft, yTop, xRight, yBottom,
     xStart, yStart, xEnd, yEnd);
Линия, рисуемая функцией Arc приведена на рис. 4.9; фигуры, отображаемые функциями Chord и Pie, приведены на рис. 4.10 и 4.11. Windows использует воображаемую линию для соединения точки (xStart, yStart) с центром эллип-са. В точке, где эта линия пересекается с ограничивающим прямоугольником, Windows начинает рисовать дугу эллипса в направлении против часовой стрелки. Windows также использует воображаемую линию для соединения точки (xEnd, yEnd) с центром эллипса. В точке, где эта линия пересекается с ограничивающим прямоугольником, Windows завершает рисование дуги.
В случае функции Arc действия Windows на этом заканчиваются, поскольку дуга — эллиптическая кривая, не ограничивающая замкнутую область. В случае функции Chord Windows соединяет конечные точки дуги. В случае функции Pie Windows соединяет начальную и конечную точки дуги с центром эллипса. Внутренняя область фигур, образуемых функциями Chord и Pie, закрашивается текущей кистью.
Вас может удивить использование начальной и конечной позиций в функциях Arc, Chord и Pie. Почему бы просто не указать начальную и конечную точки на кривой эллипса? Хорошо, вы можете сделать так, но вам придется чис-ленно описать, что это за точки. Метод, применяемый в Windows, работает, не требуя этих уточнений.


Программа LINEDEMO, приведенная на рис. 4.12, рисует прямоугольник, эллипс, прямоугольник с скругленными углами и два отрезка, но в другом порядке. Эта программа показывает, что функции, определяющие области, закрашивают их. Поэтому отрезки не видны там, где нарисован эллипс. Результаты вывода программы приведены на рис. 4.13.


LINEDEMO.MAK
#------------------------
# LINEDEMO.MAK make file
#------------------------

linedemo.exe : linedemo.obj
     $(LINKER) $(GUIFLAGS) -OUT:linedemo.exe linedemo.obj $(GUILIBS)

linedemo.obj : linedemo.c
     $(CC) $(CFLAGS) linedemo.c
LINEDEMO.C
/*--------------------------------------------------
   LINEDEMO.C -- Line-Drawing Demonstration Program
                 ;(c) Charles Petzold, 1996
  --------------------------------------------------*/

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char szAppName[] = "LineDemo" ;
     HWND        hwnd ;
     MSG         msg ;
     WNDCLASSEX  wndclass ;

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (NULL, IDI_APPLICATION) ;
     RegisterClassEx (&wndclass) ;

     hwnd = CreateWindow (szAppName, "Line Demonstration",
                          WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          NULL, NULL, hInstance, NULL) ;

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          ;DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     static int  cxClient, cyClient ;
     HDC         hdc ;
     PAINTSTRUCT ps ;

     switch (iMsg)
          {
          case WM_SIZE:
               cxClient = LOWORD (lParam) ;
               cyClient = HIWORD (lParam) ;
               return 0 ;

          case WM_PAINT:
               hdc = BeginPaint (hwnd, &ps) ;

               Rectangle (hdc,     cxClient / 8,     cyClient / 8,
                               7 * cxClient / 8, 7 * cyClient / 8) ;

               MoveToEx  ;(hdc,        0,        0, NULL) ;
               LineTo    ;(hdc, cxClient, cyClient) ;

               MoveToEx  ;(hdc,        0, cyClient, NULL) ;
               LineTo    ;(hdc, cxClient,        0) ;

               Ellipse   (hdc,     cxClient / 8,     cyClient / 8,
                               7 * cxClient / 8, 7 * cyClient / 8) ;

               RoundRect (hdc,     cxClient / 4,     cyClient / 4,
                               3 * cxClient / 4, 3 * cyClient / 4,
                                   cxClient / 4,     cyClient / 4) ;
               EndPaint (hwnd, &ps) ;
               return 0 ;

          case WM_DESTROY:
               PostQuitMessage (0) ;
               return 0 ;
          }

     return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
     }


Некоторые выдержки из книги.

Павел извини, надеюсь сервер выдержит.

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 18.12.05 02:13
Компонент Open Dialog (Save Dialog)
Что за компонент? Ты хочешь подключить VB-ный ocx через COM?

Ответить

Номер ответа: 8
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #8
Добавлено: 18.12.05 09:54
Компонент вероятно у Borland C++

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 24.12.05 16:28
Что за компонент? Ты хочешь подключить VB-ный ocx через COM?


А у Си что нема своего?



P.S. Спс vito. Задание сдал... а доставал всех, т.к. ехать в унгивер через час надо было, и трафик был на 15 коп. А всякие разные отправляли на ссылки обучающие как задавать вопросы... :)

Ответить

Номер ответа: 10
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #10
Добавлено: 25.12.05 07:18
А зачем Си компонент? Там классы есть.

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 25.12.05 19:31
Я ж незнаю :) зачем... А есть примерчик с этим опен диалогом?

Ответить

Номер ответа: 12
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #12 Добавлено: 25.12.05 20:16
Дык просто же всё:

//===============================================================
BOOL GetFileName( char* lpBuffer )
{
    OPENFILENAME            ofn;

    RtlZeroMemory(&ofn, sizeof (OPENFILENAME));
    ofn.hInstance=hInstance;
    ofn.hwndOwner=hWnd;
    ofn.lStructSize=sizeof (OPENFILENAME);
    ofn.lpstrFilter = "All Files\0*.*\0";
    ofn.lpstrFileTitle="Открыть файл";
    ofn.lpstrFile=lpBuffer;
    ofn.nMaxFile=260;
    ofn.Flags=OFN_EXPLORER | OFN_FILEMUSTEXIST;

    return GetOpenFileNameA(& ofn);
}

Ответить

Номер ответа: 13
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #13 Добавлено: 25.12.05 20:43
а... инклуды итп??? я ж ничё незнаю как его объявить этот ofn ...

Ответить

Номер ответа: 14
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #14 Добавлено: 25.12.05 21:22
Ну тебе что, трудно в msdn посмотреть?
И увидеть, что Declared in Commdlg.h
И соответствующая либа тоже.

Ответить

Номер ответа: 15
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 26.12.05 00:45
не трудно, просто толку мало обычно :)

вот и в этот раз аналогично

typedef struct tagOFN {
  ;DWORD         lStructSize;
  HWND          hwndOwner;
  HINSTANCE     hInstance;
  LPCTSTR       lpstrFilter;
  LPTSTR        lpstrCustomFilter;
  ;DWORD         nMaxCustFilter;
  ;DWORD         nFilterIndex;
  LPTSTR        lpstrFile;
  ;DWORD         nMaxFile;
  LPTSTR        lpstrFileTitle;
  ;DWORD         nMaxFileTitle;
  LPCTSTR       lpstrInitialDir;
  LPCTSTR       lpstrTitle;
  ;DWORD         Flags;
  WORD          nFileOffset;
  WORD          nFileExtension;
  LPCTSTR       lpstrDefExt;
  LPARAM        lCustData;
  LPOFNHOOKPROC lpfnHook;
  LPCTSTR       lpTemplateName;
#if (_WIN32_WINNT >= 0x0500)
  void *        pvReserved;
  ;DWORD         dwReserved;
  ;DWORD         FlagsEx;
#endif // (_WIN32_WINNT >= 0x0500)
} OPENFILENAME, *LPOPENFILENAME;


//===============================================================
BOOL GetFileName( char* lpBuffer )
{
    OPENFILENAME            tagOFN;

    RtlZeroMemory(&tagOFN, sizeof (OPENFILENAME));
    tagOFN.hInstance=hInstance;
    tagOFN.hwndOwner=hWnd;
    tagOFN.lStructSize=sizeof (OPENFILENAME);
    tagOFN.lpstrFilter = "All Files\0*.*\0";
    tagOFN.lpstrFileTitle="Открыть файл";
    tagOFN.lpstrFile=lpBuffer;
    tagOFN.nMaxFile=260;
    tagOFN.Flags=OFN_EXPLORER | OFN_FILEMUSTEXIST;

    return GetOpenFileNameA(& tagOFN);
}


куча ошибок, си на меня страшно матерится, а я на него... вообщем мы враги пока... :)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам