Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
GetWindowRect и , функции GetClientRect могут использоваться, вычисляет размер всех границ окна.
Suite101 имеет статью о изменение размеров окна и клиентской области хранения в знать размере .
Вот их пример кода:
void ClientResize(HWND hWnd, int nWidth, int nHeight)
{
RECT rcClient, rcWind;
POINT ptDiff;
GetClientRect(hWnd, &rcClient);
GetWindowRect(hWnd, &rcWind);
ptDiff.x = (rcWind.right - rcWind.left) - rcClient.right;
ptDiff.y = (rcWind.bottom - rcWind.top) - rcClient.bottom;
MoveWindow(hWnd,rcWind.left, rcWind.top, nWidth + ptDiff.x, nHeight + ptDiff.y, TRUE);
}
Я думаю, что Вы ищете, SM_CYCAPTION
- это - высота строки заголовка. SM_CYBORDER
высота горизонтальных краев окна.
Главный Фанат дает подробный ответ: используйте GetSystemMetrics для складывания битов границы и подписи. Можно также сделать различие на ширине/высоте между GetWindowRect и GetClientRect. Это даст Вам общее количество всех подписей/границ/и т.д.
obj.firm_url
мог бытьhttp://example.com/<script>alert("I'm evil");</script>
– Flimm 11 May 2016 в 17:43