Ув. эксперты! У меня 4 вопроса (Если можно приведите пример): 1. Как в системном меню переназначить пункт по умолчанию. 2. Как удалить из системного меню элементы помещенные туда Windows при создании окна, такие как Свернуть, Закрыть, ... При этом кнопки в заголовке окна не должны изчезнуть и потерять функциональность, т.е., чтобы с помощью них можно было выполнять те же дейтсвия 3. Как в стандартном диалоге выбора папки отобразить кнопку Создать... (в 98 ее там по-умолчанию нет) и как обработать нажатие на нее. 4. Как в диалог MessageBox добавить свой элемент, например, флажок. Или же для этих целей люди пищут свои контролы Если можно приведите пример
Доброе время суток, lonfst! 3) Нужно присвоить класс диалогового окна к родственному, напрмер TDIalog.(В Visual C++) 4)Создаются дилоговые окна и на них ставятся нужные контроллы.
Да прибудет с тобой Великая Сила! This message was created by EMan 1.5
Ответ отправлен: 06.09.2003, 23:37 Отправитель: BOLT Отвечает Marouder
Приветствую Вас, lonfst! 4. Можно попробовать (не знаю, получится или нет) вызвать MessageBox, затем из другого потока найти по FindWindow его окно, создать с помощью CreateWindowEx там контрол, с помощью SetWindowLong установить новую оконную процедуру и.т.п. Ответ отправлен: 07.09.2003, 10:31 Отправитель: Marouder Отвечает vitya
Здравствуйте, lonfst! 1-2.CMenu* pSysMenu = GetSystemMenu(FALSE); -> так получаешь меню - дальше стандартными операциями, добавляешь или стираешь. 3. Изменение стандартного диалога, смотри в книги Круглинского. 4. в данном случае скорее всего придется создать свой собственный ресурс - диалог, в который надо добавить всего один флажок. 2 кнопки будут там по умолчанию. Ответ отправлен: 07.09.2003, 11:03 Отправитель: vitya Отвечает Извращенок
Приветствую Вас, lonfst! Насчет первых трех - не знаю, а вот с MessageBox однозначно никак. Ответ отправлен: 07.09.2003, 16:12 Отправитель: Извращенок
Вопрос № 1055
уважаемые эксперты я пишу игру на VC++ и столкнулся с одной проблемой. на моем основном поле игры (.bmp file) мне нужно передвигать героя ,который нарисован на белом фоне (.jpg file) и этот белый фон мне совсем не нужен в игре. я новичок в VC++ & MFC ,надеюсь на вашу помощь... спасибо. сергей
Здравствуйте, dfc_alive! Не понятно какой технологией ты пользуешься. Если MFC, - значит DirectX не катит. Предполагаю что ты используешь функцию BitBlt. Я просмотрел справочник, заметил последний параметр dwRop - служит для растровых операций. Посмотри его, может он тебе поможет.
Да прибудет с тобой Великая Сила! This message was created by EMan 1.5
Ответ отправлен: 06.09.2003, 23:37 Отправитель: BOLT Отвечает Извращенок
Добрый день, dfc_alive! Ну, лучше загружать все из bmp. В MSDN читай хелпу на функцию BitBlt (там нужно создавать две картинки, одна будет настоящей, другая - макской). Или пиши на ассемблере попиксельную прорисовку с использованием MMX. Ответ отправлен: 07.09.2003, 16:12 Отправитель: Извращенок
Вопрос № 1056
Здравствуйте! Не подскажите, как в C++ Builder делать много однотипных диалогов, т.е. имеется главная форма с кнопочкой и др. форма. Нужно, при нажатии на кнопку чтобы появлялась КОПИЯ др. формы.
Доброе время суток, Quas! вот так: //--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TForm1 * myform; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { myform = new TForm1(0); myform->Left = Left + 20; // для того чтобы увидел новую форму myform->Top = Top + 20; // / myform->Show(); } //---------------------------------------------------------------------------
Да
прибудет с тобой Великая Сила! This message was created by EMan 1.5
Ответ отправлен: 08.09.2003, 18:31 Отправитель: BOLT Отвечает Yuri Gordienko
Здравствуйте, Quas! А что, new в CBuilder не работает? Успехов Ответ отправлен: 08.09.2003, 10:09 Отправитель: Yuri Gordienko Отвечает Извращенок
Добрый день, Quas! Создавай новый объект всей формы. Как будто регистрируешь окошко. Ответ отправлен: 07.09.2003, 16:39 Отправитель: Извращенок Отвечает Vdr
Приветствую Вас, Quas! Что-то типа: new *Form; Form->Show(); Удачи! Ответ отправлен: 09.09.2003, 12:13 Отправитель: Vdr
Вопрос № 1057
Здравствуйте Эксперты... Как можно при помощи MAPI отправить письмо с текстом внутри на определенный e-mail? Если можно небольшой примерчик.....
Приветствую Вас, Jogi! В соверменных системах это сложно из-за повышенной безопасностию Лучше напрямую через протокол SMPT (см. RFC822). Если не хочешь - читай MSDN, там и примеры есть, и расписано все очень подробно. Ответ отправлен: 07.09.2003, 16:12 Отправитель: Извращенок
Вопрос № 1058
Здравствуйте, эксперты ! Как сделать маленькое окошко, как у FlashGet корзинка? Видел такое во многих приложениях.
Добрый день, IceWINteR! Стиль окна должен быть WS_DLGFRAME в MFC, в C++Builder свойство формы Borderstyle="bsNone".
Да прибудет с тобой Великая Сила! This message was created by EMan 1.5
Ответ отправлен: 08.09.2003, 18:31 Отправитель: BOLT Отвечает Yuri Gordienko
Доброе время суток, IceWINteR! Используй CreateWindow, внимание обрати на третий параметр этой функции dwStyle. А вообще, хоть бы написал на чем пишешь, а то так - пальцем в небо. Успехов Ответ отправлен: 08.09.2003, 10:15 Отправитель: Yuri Gordienko Отвечает Morgion
Здравствуйте, IceWINteR! Делаешь окно без рамки(без WS_CAPTION) + стиль TOPMOST и рисуешь в него то, что тебе надо- будет хоть как в флешгете. Ответ отправлен: 09.09.2003, 00:39 Отправитель: Morgion
Вопрос № 1059
Добрый Вечер. Подскажите, пожалуйста, алгоритм проверки того, является ли введенное с клавиатуры число суммой квадратов трёх натуральных чисел ? Например, 29 - верное решение, так как 2*2+3*3+4*4 = 4+9+16 = 29. Так вот, как это реализовать на С++ ? Ясно, что два вложенных цикла, но не могу понять, как остановиться на необходимой итерации внешнего цикла, чтобы войти во внутренний цикл (если одно из необходимых значений удовлетворяет), и т.д., то есть как попасть в третий цикл (второй вложенный), чтобы найти третье число...
#include using namespace std; //--------------------------------------------------------------------------- int main(int argc, char* argv[]) { cout << "Enter, please a digit: "; int digit; cin >> digit; for (int
i=1;ifor (int j=1;jfor (int h=1;hif ((i*i+j*j+h*h) == digit) { cout << i << "^2 + " << j << "^2 + " << h << "^2"<< " = " << digit << endl; goto exit; } exit: cin.get();// wait
for enter return 0; } //---------------------------------------------------------------------------
Да прибудет с тобой Великая Сила! This message was created by EMan 1.5
Ответ отправлен: 08.09.2003, 18:31 Отправитель: BOLT Отвечает Avl2k
Приветствую Вас, Challenger! Если перебором, то можно сделать примерно так: bool factorize( int num, int& i, int &j, int &k ) { for(i = 1;;++i) { int d1 = num - i * i; if( d1 <= 0 ) return false; for(j = 1;;++j) { int d2 = d1 - j * j; if( d2 <= 0 ) break; for(k = 1;;++k) { int d3 = d2 - k * k; if( d3 < 0 ) break; if( d3 == 0 ) return true; } } } } ostream& out_sq( ostream& os, int n ) { return os << n << '*' << n; } #define SQ(x) x << '*' << x int main() { for( int num = 1; num < 50; ++num ) { int a, b, c; if( factorize( num, a, b, c ) ) cout << num << "= " << SQ( a ) << '+' << SQ( b ) << '+' << SQ( c ) << endl; } return 0; } С уважением, Avl2k. Ответ отправлен: 08.09.2003, 13:53 Отправитель: Avl2k Отвечает Извращенок
Добрый день, Challenger! Хм. Самое кривое решение, просто не хотелось больше расписывать. Но я что-то не понял начет второго и третьего циклов...
Приложение: Ответ отправлен: 07.09.2003, 16:40 Отправитель: Извращенок Отвечает --- Нет данных ---
int n,flag=0; ... for(i=1;(i*i for(j=i;(j*j if(sqrt(n-i*i-j*j)=int(sqrt(n-i*i-j*j)))flag=1; if(flag)...//Yes else...//No
Приложение: Ответ отправлен: 09.09.2003, 18:11 Отправитель: --- Нет данных ---
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.