Я должен делать структуру неправильно или указывать на него неправильно, мои кнопки (или ключи!) Откажитесь обновлять пеC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Я должен делать структуру неправильно или указывать на него неправильно, мои кнопки (или ключи!) Откажитесь обновлять пе

Сообщение Anonymous »

Я строю глубоко интерактивный фрактальный генератор, который в конечном итоге будет перенесен на что -то вроде Arduino и превращено в модуль Eurorack, но это не так, как объяснить, почему я пытаюсь сделать это в графике низкого уровня, например, Windows GDI. < /p>
puhbuttons (или вход клавиатуры) просто обновление перемен! к кодированию, и хотя/потому что я зашел так далеко, не задавая никаких реальных людей каких -либо реальных вопросов, и всего лишь через несколько недель я уверен, что, хотя мой код в основном работает, я делаю много неправильного. Я абсолютно опубликую все, что у меня есть, если речь идет об этом, но вот того, я надеюсь, будет достаточно для этой единственной проблемы.

Код: Выделить всё

//container for Scaling and Shifting functions between screen and Mandelbrot values
struct ScreenScaler {

float xScale;
float yScale;
float xPos;
float yPos;
float xMin, xMax;
float yMin, yMax;

void  initSpace (ScreenScaler &space) {
double zoomingBar = SendMessage(hSlider2, TBM_GETPOS, 0, 0);
float Zoom = (zoomingBar / 5);
float SlideX = SendMessage(hSlider3, TBM_GETPOS, 0, 0);
float SlideY = SendMessage(hSlider4, TBM_GETPOS, 0, 0);
space.xScale = 1 + Zoom;
space.yScale = 1 + Zoom;

space.xPos = 0; //(SlideX / 10) - 4;
space.yPos = (SlideY / 10) - 4;

space.xMin = ((-2) / space.xScale) + space.xPos;
space.xMax = ((2) / space.xScale) + space.xPos;
space.yMin = ((-2) / yScale) + space.yPos;
space.yMax = ((2) / yScale) + space.yPos;
}

void left(ScreenScaler *lscale, bool movleft) {
if (movleft) {
lscale->xPos -= 1.0;                                           // I am passing these members by reference/pointer hoping to change their values directly. with the trackbars this works great, but buttons and keys stubbornly refuse to increment..
}

}
void right(ScreenScaler *rscale) {
rscale->xPos += 1.0;

}
};
В настоящее время мои трекбары все еще контролируются, вниз и Zoom, я стараюсь сначала реализовать это с левым/правым. В этом состоянии трекбары все еще работают, как и задумано.case WM_KEYDOWN:
{

bool movleft = false; //so I am getting here for sure, if I uncomment the messagebeep, it sounds when its button is pressed.
//bool right = false; //id like this to be a continuous shifting while the button is held (the sound of the messagebeep implies this is already happening), as I am trying to move left and right/up and down//
if (LOWORD(wParam) == VK_LEFT)
/*case VK_LEFT:*/ {
movleft = true;
scale.left(&scale, movleft);
scale.xPos = scale.xPos -= 1;

//MessageBeep(MB_OK);
break;
}
if (LOWORD(wParam) == VK_RIGHT)
/*case VK_RIGHT: */{
scale.right(&scale);
scale.xPos = scale.xPos += 1;
//MessageBeep(MB_COMPOSITE);
break;
}
// }
return 0;

}
< /code>
(Чтобы ответить, почему есть лопатка на одном, а не другое, это, конечно, еще одна попытка заставить структуру распознать, что я меняю его.) //ScreenScaler scale declared earlier

float cx = std::lerp(scale.xMin, scale.xMax, j);
float cy = std::lerp(scale.yMin, scale.yMax, i);
< /code>
Я попытался поймать WM_Command или WM_NOTIFY Вместо этого я пытался создать кнопки (хотя и не пытался сделать подклассы, и да, с BS_NOTIFY в соответствующем случае) я попытался увеличить непосредственно из случая, а не пустота в структуре, я пытался иметь эти иборы за пределами структуры, различные пропутывания '&' & '************************** Как только трекбары работают непрерывно, и самое приятное то, что когда это находится в его конечной форме, это не будет кнопок, это будут напряжения на булавках.
Сейчас значения приращения огромны (1 здесь большие), просто потому, что я хочу быть уверенным, что я буду видеть чертовски, когда он работает, но план, чтобы быть намного меньше, и все еще больше, когда он будет определен, и все еще будет определено, что все еще будет в дальнейшем. это напряжение).
Как окончательный объяснитель/отказ от ответственности, я также сделал это специально, не искавая, как сделать то, что я делаю , иду больше для общего обучения и переводив то, что я нахожу в этот проект, пока он не функционирует с ним.

Подробнее здесь: https://stackoverflow.com/questions/794 ... ns-or-keys
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»