我对NSView有疑问:
想象一下自定义视图,其中mouseDown,mouseDrag和mouseUp方法被覆盖,因此用户可以在屏幕上拖动一个点(NSRect).要拖动它,我需要相对于当前视图的鼠标坐标.当视图的父级是窗口时,这不是问题,但是当视图在另一个视图中时,如何获取它们?
@implementation MyView
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
pointXPosition = 200.0f;
pointYPosition = 200.0f;
locked = NO;
}
return self;
}
- (void) drawRect:(NSRect)rect {
NSRect point = NSMakeRect(pointXPosition, pointYPosition, 6.0f, 6.0f);
[[NSColor redColor] set];
NSRectFill(point);
}
- (void)mouseDown:(NSEvent *)theEvent {
NSPoint mousePos = [theEvent locationInWindow];
NSRect frame = [super frame];
CGFloat deltaX = mousePos.x - frame.origin.x - pointXPosition;
CGFloat deltaY = mousePos.y - frame.origin.y - pointYPosition;
if(sqrtf(deltaX * deltaX + deltaY * deltaY) …
Run Code Online (Sandbox Code Playgroud) 我刚刚翻译了这个程序,
#include <stdio.h>
int dam[1000][1000];
int main (int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用gcc生产组装,
.cstring
LC0:
.ascii "Hello, World!\0"
.text
.globl _main
_main:
pushl %ebp
movl %esp, %ebp
pushl %ebx
subl $20, %esp
call L3
"L00000000001$pb":
L3:
popl %ebx
leal LC0-"L00000000001$pb"(%ebx), %eax
movl %eax, (%esp)
call L_puts$stub
movl $0, %eax
addl $20, %esp
popl %ebx
leave
ret
.comm _dam,1000000,5
.section __IMPORT,__jump_table,symbol_stubs,self_modifying_code+pure_instructions,5
L_puts$stub:
.indirect_symbol _puts
hlt ; hlt ; hlt ; …
Run Code Online (Sandbox Code Playgroud) 我是Mac的长期用户,拥有相当多的编程经验,我想尝试为Windows编程.问题是我不知道从哪里开始,我应该先学习什么?.Net,Win32?
[澄清]:我的最终目标是使用最新的API创建一个或多或少复杂的应用程序,但我想知道我所摒弃的基础.